Skip to content
HeZzz
Go back

利用 SSH 创建代理隧道

学校的 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_server9090 端口。之后,远程服务器上的用户可以通过访问 remote_server:9090 来访问你本地的 local_server 的 3000 端口。

动态转发(-D):创建 SOCKS 代理

最常用的方法是使用SSH的动态端口转发功能创建SOCKS代理。基本命令格式如下:

ssh -D 8888 username@remote_server

这个命令会在本地机器的 8888 端口创建一个SOCKS代理,所有流量都会通过远程服务器转发。

配置 Firefox 浏览器使用代理

创建SSH隧道后,需要在浏览器中配置使用这个SOCKS代理:

  1. 点击右上角菜单(三个横线图标)
  2. 进入 Settings > General > Network Settings > Settings…
  3. 选择 “Manual proxy configuration”
  4. 在 SOCKS Host 字段输入 127.0.0.1,端口输入 8888(或您设置的端口)
  5. 选择 SOCKS v5 选项
  6. 点击 OK 保存设置

其他浏览器可能需要安装扩展程序来配置SOCKS代理。

利用代理软件获得更好的体验(以 V2RayN 为例,可选

有时候,使用浏览器代理可能不够方便,可以使用代理软件如 V2RayN 来管理和使用 SOCKS 代理,方法如下:

  1. 在 V2RayN 中添加一个新的代理服务器,类型选择 SOCKS5
  2. 服务器别名选择一个自己喜欢的名字(以 我的代理 为例子),地址填写 127.0.0.1,端口填写 8888(或您设置的端口)
  3. 保存并启用该代理
  4. 在路由设置中,添加规则,将需要通过代理访问的网站添加进去,并把 outboundTag 选择为刚才创建的 SOCKS5 代理(即 我的代理
  5. 保存设置并启用

这样,V2RayN 就会通过 SSH 创建的 SOCKS 代理来访问指定的网站,提供更好的网络体验和管理功能。

注意事项

  1. SSH 隧道在 ssh 终端退出后会自动断开,需要保持 SSH 连接活跃
  2. SOCKS 代理支持 TCP 连接,适合大多数应用,但不支持 UDP
  3. 确保远程服务器允许 SSH 连接和端口转发
  4. 使用代理时,所有流量都会经过远程服务器,请注意隐私和安全
  5. 在使用代理软件时,确保配置正确以避免流量泄露。如果使用了系统代理,请查看软件的相关设置,确保所有流量都通过代理。

这样设置完成后,您的浏览器就会通过 SSH 隧道代理所有流量,实现安全的网络访问。


Share this post on:

上一篇
算法导论-2025fa-wzx最后一课
下一篇
算法导论-2025fa-OJ