美文网首页
DockerHub吧!GitHub吧!Google吧!

DockerHub吧!GitHub吧!Google吧!

作者: 轻轻敲醒沉睡的心灵 | 来源:发表于2024-06-12 13:31 被阅读0次

国内的优良传统,去年5月份DockerHub突然就不能用了,想拉个镜像都不知道标签版本是多少,更别提各版本的区别了,很难受,国内的Tag文档网站平时用的也都关了,简直要命。平时GitHub也是时灵时不灵的,看运气吧。为了能更好的学习,增强国际关系,现在介绍一个 SSH隧道端口动态转发实现SOCKS代理的方法(即通过ssh连接实现代理)。
为啥用这个,不直接Http代理?好多云服务器限制了VPN一类的软件,我就不试了。

1. 准备材料

    1. 香港或国外云服务器,这是最重要的,通过这个来访问国际网站的。阿里和腾讯都有活动,好像99一年的带公网IP,1M带宽,我觉的还行,所以我从淘宝找了个8块1个月的(带IP,3M带宽,快多了)先试试水。
    1. MobaXterm汉化版
      提取码:TJRc
      其实 xshell、putty、crt等都能实现ssh隧道端口转发,但MobaXterm界面有意义,就用这个。
    1. Edge浏览器/360等Chrome内核浏览器 + Proxy SwitchyOmega插件
      或者直接用火狐浏览器(它能设置SOCKS代理),但不如用插件的方便
    1. Privoxy (如果想更好用,可以用这个将socks代理转http代理,我直接用的socks代理,没用这个)

2. 使用

2.1 准备云服务器

  • 记住要香港或国外的云服务器,云服务器能直接访问漂亮国的。
  • 有IP的。
  • 能在自己电脑ssh连接的。

我在淘宝8块买的都满足,直接用。

2.2 本地电脑实现SOCKS代理

    1. 下载打开MobaXterm汉化版
    1. 从下面打开mobaSSHTunnel设置
      mobaSSHTunnel
      填写
      1处填写ssh连接信息,密码先不用写,下一步填
      2处填写一个本地端口,稍大点,2000-5000直接就行,然后保存
选本机IP
编辑一下图上的地方,选本机网卡IP(127.0.0.1不一定好使)。
    1. 最后开启隧道
      一定要开启,这样SOCKS代理就好了,代理地址就是 刚才你选的网卡地址,端口就是刚才填的那个,一般使用socks5代理模式。如上图,我的应该是:192.168.2.200:5678 socks5

2.3 浏览器设置

看自己喜好,我用的Edge浏览器。

    1. 安装Proxy SwitchyOmega插件
      1718253242829.png
    1. 设置代理


      配置代理

在proxy选项卡填上刚才自己的SOCKS代理,点击应用选项 保存

    1. 启用代理

在浏览器的扩展标签切换到proxy代理,就可以愉快的谷歌和YouTube了。

切换代理
谷歌
YouTube
不用了记得把代理切换回去,不然网速慢。

这只是对 单个浏览器启用了代理,如果想要 电脑都启用代理,那就找个ss代理客户端吧。

3. 命令实现socks代理服务

上面2.2是在我们自己电脑上用MobaXterm软件做了 SOCKS代理服务器。其实我们可以把这个代理服务 放到一个 linux上。正好我有N1,装的 OpenWrt,可以在上面 用ssh命令实现SOCKS代理服务。因为连ssh需要密码,所以得手动执行命令。要想N1开机执行命令,免密登陆ssh,需要生成公钥,这里就不弄了。

3.1 安装ssh客户端

OpenWrt 中默认自带的 SSH 服务端和客户端是 Dropbear,Dropbear 作为 SSH 客户端无法满足我们的需要,所以我们要安装 openssh-client。
首先连上N1的ssh。我这个有网页版的TTYD终端,就在里面执行命令就行。

# 1. 更新源
opkg update
# 2. 安装
opkg install openssh-keygen openssh-client
# openssh-keygen负责生成密钥和公钥,openssh-client负责作为客户端与其它主机连接

3.2 用ssh命令实现SOCKS代理

从2.2中MobaXterm的图片上,我们可以看出:ssh隧道大致可以分为本地端口转发、远程端口转发、动态端口转发3种,每种都有自己的ssh命令格式,我们今天用的是 第3种。
命令讲解

-g:开启网关,表示所有访问这个地址的请求都可以转发;如果不加,只有在这个电脑上访问这个地址才转发
-Nf:N表示创建隧道以后不连接到 ssh服务端,连接之后界面会直接卡住,若你要建立之后并连接ssh服务端操作,可以直接取消本参数;f表示在后台运行,注意在后台运行只能通过杀进程的方式结束;连写
-L:表示local,本地端口转发;
-R:表示remote,远程端口转发;
-D选项:表示使用动态端口转发创建ssh隧道
    1. 本地端口转发

模型:本地主机 <===> ssh服务器 <===> 远端主机
连接从本地主机转发到SSH服务器主机,然后转发到远端主机端口。
因为 本地主机能连ssh服务器,不能连远端主机,而ssh服务器能连远端主机。

# 命令格式
ssh -g -N -L -f [本地端口]:[远程IP]:[远程端口] [ssh帐号]@[ssh服务IP] -p [ssh服务端口]
# 例子
ssh -g -Nf -L 1234:192.168.2.90:80 root@192.168.2.2 -p 22
# root@192.168.2.2 -p 22 表示使用root用户连接 192.168.2.2 的ssh服务,ssh端口是22
# 上面的命令意思是,访问本机电脑的 http://本地IP:1234 可以直接访问到远程机器的 http://192.168.2.90:80所在的web服务。
    1. 远程端口转发

模型:ssh服务器 <===> 本地主机 <===> 远端主机
将请求从ssh服务器主机转发到本地主机,然后转发到远端主机。

# 命令格式
ssh -g -Nf -R  [ssh主机端口]:[远端主机IP]:[远端主机端口] [ssh帐号]@[ssh服务IP] -p [ssh服务端口]
# 例子
ssh -g -Nf -R 2345:192.168.2.90:80 root@192.168.1.10 -p 22·
# root@192.168.1.10 -p 22 同上
# 上面的命令意思是,访问ssh机器(192.168.1.10)的2345端口,相当于访问了远端主机(192.168.2.90)所在的web服务。这里需要注意,默认ssh只会绑定端口在127.0.0.1环回地址上面,若需要绑定到所有 IP,需要在远程机器 sshd 配置文件中打开GatewayPorts:on。
    1. 动态端口转发(socks代理)

模型:本地主机 <===> ssh服务器 <===> 网络上的所有服务,同本地端口转发类似,只不过远程主机不确定,由ssh自动判断不同协议的请求作不同的处理。

# 命令格式
ssh -g -Nf -D [本地主机端口] [ssh帐号]@[ssh服务IP] -p [ssh服务端口]
# 例子
ssh -g -Nf -D 3456 root@1.1.1.1 -p 22
# 上面的命令意思是,访问http://本地主机:3456 的请求转到 ssh服务器,然后由ssh服务器去处理请求。而本地主机的IP和端口 服务 就是 socks代理服务器。

所以 在N1 上执行这个命令,N1就可以做socks代理服务器:ssh -g -Nf -D [指定端口] root@[云主机IP] -p [云主机SSH端口]

4. 用 Privoxy 将socks代理转http代理

以ubuntu系统为例:

4.1 安装privoxy

sudo apt-get install privoxy

4.2 修改配置文件

sudo vi /etc/privoxy/config 
  • 注释掉 listen-address 127.0.0.1:8118,应该是2行,一行IPV4的,一行IPV6的
# listen-address  127.0.0.1:8118
# listen-address  [::1]:8118
  • 末尾添加
# forward-socks5 远程socks5代理的地址
# forward-socks5t 也是相同的功能,区别是forward-socks5t不使用代理解析DNS,所以不用它,改为使用forward-socks5
# 注意格式,末尾有点
forward-socks5   /   192.168.2.199:6789 .
# listen-address 本地监听的http代理端口
listen-address  192.168.2.199:8118

4.3 启动或重启privoxy服务

sudo systemctl start privoxy
systemctl restart privoxy
systemctl enable privoxy

4.4 测试Http代理是否成功

# 会显示云服务器的ip和归属地
curl -x 'http://192.168.2.199:8118' myip.ipip.net
curl -x 'socks5://192.168.2.199:6789' myip.ipip.net

相关文章

  • 语言吧吧吧

    平常说的少,但是听的多,持续性看节目,耳边响起语言吧吧吧。 听的太多,耳朵出现空白,主要是注意力会转移...

  • chrome://flags/

    chrome://flags/ 访问Google的神器:Chrome的QUIC协议chrome吧百度贴吧

  • 吧吧

    你好呀

  • 【PPT】做个 Google Doodle 吧!

    今天的GoogleDoodle长这样: 为了纪念包浩斯創校 100 週年 如果你是个新手, 会插入PPT形状, 完...

  • Redis Bloom Filter —— by 久米泷

    学习地址 RedisBloom - github Rebloom - dockerhub

  • 阿米巴,吧吧吧嘞

    一、最先想提的是——内在意识。 当一个人说出一句话的时候,他就会往这句话的方向去推动,以此证明自己是对的。 比如“...

  • 睡吧睡吧,下吧下吧

    四月天气变化大,阴雨连绵好睡觉,睡了上午有下午,疗伤休养建功业 上午真不想起床,昨晚近1点写完挽歌,发过来,安心入...

  • 加油吧吧

    希望明天的你一帆风顺,如果不,也请接收。

  • 随意吧吧

    自打干起了线下兼职,跑的筋疲力竭的。 读书的习惯又丢掉了,还好有这个平台提醒自己。 明天起坚持读书20页吧,把简书...

  • iOS 原生api视频转Gif

    Google了很久,没查到,没办法自己写吧

网友评论

      本文标题:DockerHub吧!GitHub吧!Google吧!

      本文链接:https://www.haomeiwen.com/subject/llggqjtx.html