SSH做Sock代理
开源软件openssh提供了sock代理支持,使用也非常方便。只要能够ssh到一台服务器,就能够通过那台服务器代理上网了。
假设有ssh服务ssh://user@sshServer
在本地运行$ ssh -N -f -D 8000 user@proxy-server
127.0.0.1:8000就是一个sock代理了。-N是不要远程执行命令,-f是后台运行。
考虑复杂的一点的情况,假设有一台内网服务器ssh://a@A,公网服务器ssh://b@B。其中a,b分别为A,B上的用户。现在想通过A代理上网。则可以通过ssh建立B到A的隧道。将A的ssh服务暴露出来。如下:
服务器A$ ssh -Nf -o ServerAliveInterval=29 -R *:8022:127.0.0.1:22 b@B
服务器B
修改sshd_config(ubuntu上是/etc/ssh/sshd_config),确保GatewayPorts=yes,以允许在所有地址上监听8022端口
本地$ ssh -N -f -D 8000 -p 8022 a@B
ServerAliveInterval=29是每隔29秒在隧道上传送一段数据,以保持网关的NAT长期有效。-R是将远端的8022端口映射为本地的22号端口,也就是ssh服务所在的端口。
相关推荐
projava 2020-11-14
WanKaShing 2020-11-12
airfish000 2020-09-11
tryfind 2020-09-14
yegen00 2020-09-10
kkaazz 2020-09-03
风语者 2020-09-02
BraveWangDev 2020-08-19
lichuanlong00 2020-08-15
gsl 2020-08-15
pandaphinex 2020-08-09
yhuihon 2020-08-09
CheNorton 2020-08-02
xiangqiao 2020-07-28
hpujsj 2020-07-26
hpujsj 2020-07-26
sshong 2020-07-19
BraveWangDev 2020-07-19
annan 2020-07-18