Open penglongli opened 6 years ago
本文仅介绍 SSH 的本地端口转发和远程端口转发(俗称“打洞”)、使用 -D 参数来实现 SOCKS 代理翻墙等
前提:远程主机 Server(114.67.232.76) 运行了一个服务,端口在 52114。
Server(114.67.232.76)
我们要访问这个服务,可以直接在浏览器输入 http://114.67.232.76:52114 来访问这个服务。 现在,我们想直接通过本机的 http://localhost:52111 来访问这个服务。
http://114.67.232.76:52114
http://localhost:52111
定义: 将发送到本地端口的请求,转发到远程目标端口。
语法:
ssh -L 本地网卡地址:本地端口:远程主机地址:远程端口
使用:
$ ssh -L 0.0.0.0:52111:114.67.232.76:52114 root@114.67.232.76
我们可以通过 lsof -i:52111 看到本地的 52111 端口是开启状态了。
lsof -i:52111
优化:
$ ssh -N -C -o ServerAliveInterval=5 -L 0.0.0.0:52111:114.67.232.76:52114 root@114.67.232.76 -N 不打开远程命令行窗口 -C 压缩转发的数据 -o 自定义命令,此处定义隔 5 秒检查链接
然后我们就可以通过本地的:localhost:52111 访问服务了
远程端口转发和本地端口转发正好相反。 定义: 在远程主机上,将发送到远程主机的请求,转发到本机的端口
ssh -R 远程主机地址:远程端口:本地网卡地址:本地端口
$ ssh -N -C -o ServerAliveInterval=5 -R 114.67.232.76:52000:localhost:52111 root@114.67.232.76
将远程主机的 52000 端口请求转发到本机的 52111 端口上。
-D
这块介绍的是使用 -D 参数来进行科学上网。当然,也不仅仅是这点用。
假设你有台香港或者国外的机器,IP:198.148.115.10 我们在你的本机执行:
$ ssh -D 4444 root@198.148.115.10
你的本机就会开启一个 4444 端口,然后我们就可以通过这个 4444 端口来实现 Socket 代理了。 对于 Chrome 用户,可以下载个 SwitchyOmega 插件来玩。
懒得介绍了,具体的玩法见: https://github.com/FelisCatus/SwitchyOmega/wiki/GFWList
关于上网这块,我又切回了小飞机。不过小飞机这玩意并不是太好,可以考虑用 iKev2 来玩
本文仅介绍 SSH 的本地端口转发和远程端口转发(俗称“打洞”)、使用 -D 参数来实现 SOCKS 代理翻墙等
本地端口转发
我们要访问这个服务,可以直接在浏览器输入
http://114.67.232.76:52114
来访问这个服务。 现在,我们想直接通过本机的http://localhost:52111
来访问这个服务。定义: 将发送到本地端口的请求,转发到远程目标端口。
语法:
使用:
我们可以通过
lsof -i:52111
看到本地的 52111 端口是开启状态了。优化:
然后我们就可以通过本地的:localhost:52111 访问服务了
远程端口转发
远程端口转发和本地端口转发正好相反。 定义: 在远程主机上,将发送到远程主机的请求,转发到本机的端口
语法:
使用:
将远程主机的 52000 端口请求转发到本机的 52111 端口上。
动态端口转发(
-D
参数)假设你有台香港或者国外的机器,IP:198.148.115.10 我们在你的本机执行:
你的本机就会开启一个 4444 端口,然后我们就可以通过这个 4444 端口来实现 Socket 代理了。 对于 Chrome 用户,可以下载个 SwitchyOmega 插件来玩。
懒得介绍了,具体的玩法见: https://github.com/FelisCatus/SwitchyOmega/wiki/GFWList
关于上网这块,我又切回了小飞机。不过小飞机这玩意并不是太好,可以考虑用 iKev2 来玩