学校的 VPN 使用了 EasyConnect 这个软件,但是及其难用。不过好消息是我在学校还有一台电脑,更好的消息是 SSH 是可以用来创建代理隧道的。结合起来的效果就是:可以不使用 EasyConnect,但是远程连接到学校内网。以下为具体步骤。
本地转发(-L):把远程端口映射到本地
本地转发的基本命令格式如下:
ssh -L local_port:destination_server:destination_port username@remote_server
例如,如果你想通过远程服务器 remote_server 访问其内网中的 internal_server 的 80 端口,可以使用以下命令:
ssh -L 8080:internal_server:80 username@remote_server
这个命令会将 remote_server 上的 internal_server:80 映射到你本地的 8080 端口。之后,你可以通过访问 http://localhost:8080 来访问 internal_server 的 80 端口。
远程转发(-R):把本地端口映射到远程
远程转发的基本命令格式如下:
ssh -R remote_port:destination_server:destination_port username@remote_server
例如,如果你想让远程服务器 remote_server 访问你本地的 local_server 的 3000 端口,可以使用以下命令:
ssh -R 9090:local_server:3000 username@remote_server
这个命令会将你本地的 local_server:3000 映射到 remote_server 的 9090 端口。之后,远程服务器上的用户可以通过访问 remote_server:9090 来访问你本地的 local_server 的 3000 端口。
动态转发(-D):创建 SOCKS 代理
最常用的方法是使用SSH的动态端口转发功能创建SOCKS代理。基本命令格式如下:
ssh -D 8888 username@remote_server
这个命令会在本地机器的 8888 端口创建一个SOCKS代理,所有流量都会通过远程服务器转发。
配置 Firefox 浏览器使用代理
创建SSH隧道后,需要在浏览器中配置使用这个SOCKS代理:
- 点击右上角菜单(三个横线图标)
- 进入 Settings > General > Network Settings > Settings…
- 选择 “Manual proxy configuration”
- 在 SOCKS Host 字段输入
127.0.0.1,端口输入8888(或您设置的端口) - 选择 SOCKS v5 选项
- 点击 OK 保存设置
其他浏览器可能需要安装扩展程序来配置SOCKS代理。
利用代理软件获得更好的体验(以 V2RayN 为例,可选
有时候,使用浏览器代理可能不够方便,可以使用代理软件如 V2RayN 来管理和使用 SOCKS 代理,方法如下:
- 在 V2RayN 中添加一个新的代理服务器,类型选择 SOCKS5
- 服务器别名选择一个自己喜欢的名字(以
我的代理为例子),地址填写127.0.0.1,端口填写8888(或您设置的端口) - 保存并启用该代理
- 在路由设置中,添加规则,将需要通过代理访问的网站添加进去,并把 outboundTag 选择为刚才创建的 SOCKS5 代理(即
我的代理) - 保存设置并启用
这样,V2RayN 就会通过 SSH 创建的 SOCKS 代理来访问指定的网站,提供更好的网络体验和管理功能。
注意事项
- SSH 隧道在 ssh 终端退出后会自动断开,需要保持 SSH 连接活跃
- SOCKS 代理支持 TCP 连接,适合大多数应用,但不支持 UDP
- 确保远程服务器允许 SSH 连接和端口转发
- 使用代理时,所有流量都会经过远程服务器,请注意隐私和安全
- 在使用代理软件时,确保配置正确以避免流量泄露。如果使用了系统代理,请查看软件的相关设置,确保所有流量都通过代理。
这样设置完成后,您的浏览器就会通过 SSH 隧道代理所有流量,实现安全的网络访问。