0%

一条SSH命令实现Socks5代理


网络访问受限?如果你有台VPS,且可以用SSH访问VPS,那就可以通过SSH隧道,建立自己的SOCKS5代理。你在电脑上的互联网访问将被加密发送到SOCKS5代理(你的SSH服务器),该服务器将流量发送到互联网。

这个实现包括以下几个关键步骤:

  1. 打开到远程服务器的SSH连接。连接建立后,SSH客户端还会打开一个本地TCP端口。这个例子中,TCP端口号是1337.
  2. 配制你的浏览器(谷歌、火狐……)使用本地代理访问互联网。
  3. 远程服务器接受你的SSH访问请求,并将作为该SOCKS5连接的出站代理。

建立连接,运行如下命令:
$ssh -D 1337 -q -C -N user@youvps.domain.name

  1. -D 1337: 在本地端口1337上打开SOCKS代理。如果该端口被占用,尝试不同的端口号。如果你想为多个端点打开多个SOCKS代理,为每个端点选择不同的端口。
  2. -C: 在通道上压缩数据,节约带宽。
  3. -q: 静默模式,终端不输出内容。
  4. -N: 不执行远程命令,只转发端口。
  5. `user@youvps.domain.name`: 你的远程服务器。

运行这条命令后,ssh会一直运行,直到你CTRL+C结束它。如果想在后台运行,可以在命令行中加-f执行选项。

下面以Firefox(火狐)浏览器为例配制Socks5代理。

在火狐浏览器中,进入首选项>高级>网络,找到连接设置。把它们改成这样:

现在,你的浏览器会连接到本机的1337端口上,SSH隧道将流量传输到远程服务器,远程服务器再连接到你要访问的HTTP或HTTPS网站。

如果此时在显示IP的网站上查看本机IP,应该显示的是你远程服务器的地址。

本文参考自@mattiasgeniar文章