SSH 通过代理连接服务器
老规矩,先说结论:
或者:
注意:由于 macOS 版 Ncat 的 790 和 791 版本的 bug,上述方式不再生效。起码 791 版本在 macOS 10157 上是不行的。此问题在 792 版本中已经解决。
具体原因参见: https://nmaporg/changeloghtml
但 Linux 上没问题。所以增加个 socat 的替补方案:
Scout 本身很强大,但对代理的支持这部分貌似差一些,只支持 SOCKSv4 和 HTTP Proxy,不支持 SOCKS5。详情参考 《socat 初窥门径》 。
有些时候,由于网络限制等原因,不能直接连通过 SSH 连到指定服务器,需要经过代理进行连接。例如如下场景:
其中,
clientnet 不能直接访问 servernet
clientnet 可以访问 proxynet
proxynet 可以访问 servernet
使用 SSH 的 ProxyCommand 选项,配合 nc/Ncat 命令,实现 clientnet 通过代理 proxynet ,以 SSH 访问 servernet 。
(1) nc
macOS 上常用这种方案。但是 nc 不支持需要认证的代理。
常用参数:
(2) Ncat
Ncat 在 macOS 上通过代理连接时会出现连接断开的情况。
常用参数:
以 nc 为例,如使用 Ncat 可以自行替换。
默认为 Socket5 代理,这时可以省略 -X 参数
或者采用另一种写法:
SSH 配置文件位置:
增加如下两行内容:以 nc 为例,如使用 Ncat 可以自行替换。
使用配置文件之后,就不需要在命令行中进行代理配置了。
对于大部分情况,都可以直接使用 nc 或者 Ncat 解决。但对于一些复杂情况,也可以通过其它方案完成。如在 macOS 上想通过需要认证的代理连接,用 nc 不支持代理认证, Ncat 又有些问题。
对于代理类型的问题,可以通过 Brook 来进行类型转换。
1、 corkscrew
只支持 HTTP 代理
如需要访问带认证的代理服务器:
~/ssh/myauth 的内容:
2、 proxytunnel
只支持 HTTP 代理
命令行里只填用户名,会提示输入密码,或者通过环境变量传入。
(完)
代理服务器是介于客户端和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。
代理服务器的作用:提高访问速度;隐藏真实身份;突破限制等
如何使用HTTP代理服务器
先找一些可用的免费代理服务器地址,如图所示
IE的设置是这样的,打开IE浏览器,选择菜单栏的“工具/Internet选项”
如果是对于ADSL拨号用户来说,选择一个网络连接后,点“设置”,如下图所示,选中代理服务器,填入地址和端口号。
对于局域网用户来说,需要点“局域网设置”,如下图所示,选中代理服务器,填入地址和端口号。
FireFox的设置和IE类似,打开FireFox浏览器,选择菜单栏的“工具/选项”。
这时选择“高级/网络”,点设置,就出现下面的界面,就可以进行代理服务器的设置了,选中“手动配置代理”,然后填写代理服务器的地址和端口。
如何使用SOCKS代理服务器
目前上网就只用SSH搭建SOCKS代理服务器上网,访问网络没有任何限制,用SSH搭建SOCKS代理上网,建议使用Firefox浏览器,因为Firefox支持SOCKS代理远程域名解析,而IE只能通过类似SocksCap这样的第三方软件实现,不是很方便。
配置Firefox浏览器时,在Firefox设置SOCKS远程域名解析,主要是为了防止DNS污染,具体设置方法是,在Firefox地址栏中,输入 about:config ,按确认,修改里面的一项数值,改成 networkproxysocks_remote_dns=true 就可以了。
打开FireFox浏览器,选择菜单栏的“工具/选项”。选择“高级/网络”,点设置,就出现下面的界面,就可以进行代理服务器的设置了,选中“手动配置代理”,然后在SOCKS主机上,填写代理服务器的地址127001,端口1080,SOCKS类型选择“SOCKS V5”,这时Firefox就配置结束。
下一步设置SSH。 具体的方法是,去PuTTY官方网站下载pLink这个文件,pLink的调用参数是:plink -C -v -N -pw 密码 -D 本地端口 远程用户@IP或域名:远程希望打开的端口。
新建一个文件,写入以下内容,另存为pLinkbat批处理文件,并放在Putty的安装目录内。 @plink -N Username@sshServer -pw Password -D 127001:1080
请将Username sshServer Password三处改为用户自己登陆SSH服务器的用户名、服务器地址和密码。
执行这个批处理文件,保持其窗口开启,一旦关闭窗口代理便失效。然后打开已经配置好127001:1080的Socks5代理的Firefox浏览器,就可以使用SOCKS代理服务器上网了。
内网机器:A
公网机器:B
1、内网机器(A)安装autossh
配置免密登录
启动端口(A)
参数解释:
注意:autossh只有三个命令,其他命令都是通过调用ssh提供的,autossh在这里只是起到了监听ssh是否断开并将其自动拉起的作用。执行完这条命令,将会在外网机器(B)123123123123上启动并监听8888端口,如下(外网机器查看)
可知,该端口是默认绑定在lo地址上的,所以在外网机器上反向登陆服务器时,可用localhost或者127001,但是不能使用真实网卡的地址去连接。
2、外网机器连接内网服务器
3、添加到系统服务,方便管理
cd /etc/systemd/system/ && vim autosshservice
启停autossh
代理服务器(Proxy Server)是网上提供转接功能的服务器,在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,是直接联系到目的站点服务器,然后由目的站点服务器把信息传送回来。下面就由我跟大家分享使用代理服务器上网的方法吧,欢迎大家来阅读学习。
使用代理服务器上网的方法
HTTP代理服务器的设置方法,对于IE和FireFox设置略有不同。设置前需要先找一些可用的免费代理服务器地址。
IE的设置是这样的,打开IE浏览器,选择菜单栏的“工具/Internet选项”。
这时候分两种情况,对于ADSL拨号用户来说,选择一个网络连接后,点“设置”,如下图所示,选中代理服务器,填入地址和端口号。
对于局域网用户来说,需要点“局域网设置”,如下图所示,选中代理服务器,填入地址和端口号。
FireFox的设置和IE类似,打开FireFox浏览器,选择菜单栏的“工具/选项”。
这时选择“高级/网络”,点设置,就出现下面的界面,就可以进行代理服务器的设置了,选中“手动配置代理”,然后填写代理服务器的地址和端口。
如何使用SOCKS代理服务器
这里就到重点内容了,SOCKS代理是目前功能最为全面,使用最为稳定的代理服务器,我目前上网就只用SSH搭建SOCKS代理服务器上网,访问网络没有任何限制。下面我就着重讲一下如何使用SOCKS代理服务器。
用SSH搭建SOCKS代理上网,建议使用Firefox浏览器,因为Firefox支持SOCKS代理远程域名解析,而IE只能通过类似SocksCap这样的第三方软件实现,不是很方便。
配置Firefox浏览器
在Firefox设置SOCKS远程域名解析,主要是为了防止DNS污染,具体设置方法是,在Firefox地址栏中,输入 about:config ,按确认,修改里面的一项数值,改成 networkproxysocks_remote_dns=true 就可以了。
然后,打开FireFox浏览器,选择菜单栏的“工具/选项”。选择“高级/网络”,点设置,就出现下面的界面,就可以进行代理服务器的设置了,选中“手动配置代理”,然后在SOCKS主机上,填写代理服务器的地址127001,端口1080,SOCKS类型选择“SOCKS V5”,这时Firefox就配置结束。
设置SSH
配置好了Firefox,就该配置SSH了,安全外壳协议(Secure Shell Protocol / SSH)是一种在不安全网络上提供安全远程登录及其它安全网络服务的协议。常用的SSH工具有开源软件PuTTY,支持SSH远程登录的主机可以实现socks5代理服务器的功能,不过在PuTTY中没有配置文件,需要手动设置才能实现,且无法保存,而PuTTY完整版自带的pLink可以实现命令行方式调用PuTTY实现SSH的加密通道。
具体的方法是,去PuTTY官方网站下载pLink这个文件,pLink的调用参数是:plink -C -v -N -pw 密码 -D 本地端口 远程用户@IP或域名:远程希望打开的端口。
新建一个文件,写入以下内容,另存为pLinkbat批处理文件,并放在Putty的安装目录内。
@plink -N Username@sshServer -pw Password -D 127001:1080
请将Username sshServer Password三处改为用户自己登陆SSH服务器的用户名、服务器地址和密码。这个SSH帐号可以通过多种方法获得,例如用户购买了某些国外主机空间或VPS就会有SSH帐号,或者在淘宝网也有SSH帐号出售,我自用的SSH帐号是用每年100美元购买虚拟主机时赠送的,通常SSH帐号的价格大约是每年几十元人民币左右,也有少量国外网站提供免费的SSH帐号。
执行这个批处理文件,保持其窗口开启,一旦关闭窗口代理便失效。然后打开已经配置好127001:1080的Socks5代理的Firefox浏览器,就可以使用SOCKS代理服务器上网了。
其他设置技巧
为了方便代理服务器的快速切换,我推荐两个FireFox代理服务器扩展,一个是QuickProxy,可以实现一键切换代理功能,QuickProxy安装后在状态栏有一个按钮,点击后可以启用、关闭Firefox浏览器的默认代理设置,可以快速在代理和非代理之间切换,很方便。界面如下图所示。另一个是AutoProxy,通过一份无法访问的域名列表目录,实现自动在代理和非代理之间切换,该域名列表目录由志愿者手动维护。AutoProxy还可实现自定义您自己的代理规则;订阅规则列表;自定义代理服务器等功能。使用AutoProxy的时候需要注意,点“代理服务器-编辑代理服务器”,将ssh -D的端口由7070修改为1080,点“代理服务器-选择代理服务器”,将ssh -D设置为默认。
0条评论