我们通常使用 ssh 来连接到我们的远程服务器执行各种操作。ssh 除了这个远程控制功能以外,还可以帮助我们建立 socks5 代理,这样我们就可以通过远程服务器作为网关来访问其他网络服务了 (web sites)。
要建立以 ssh 为基础的 socks5 代理不需要其他工具,只要执行以下步骤就可以了:
- 使用 ssh 命令建立 socks 5 链接
- 使用 chrome/firefox/edge 等浏览器配置网络访问代理为 socks 5
- 使用配置好的浏览器访问网络就可以了
我们从第一步开始,可以使用以下命令建立 socks 5 通道。
ssh -D 10080 -q -C -N user@your-server.com
上面的命令做了什么呢?
- -D 10080:表示在本地的 10080 端口建立一个 socks 5 通道
- -q: 使用安静模式,不要输出任何东西
- -N: 不执行远程命令。
- user@your-server.com: 您要访问的远程 ssh server
以上命令使用用户名和密码连接远程服务器。如果要使用证书连接远程服务器,可以执行以下命令:
ssh -D 10080 -i your-server.pem -q -C -N user@your-server.com
- -i your-server.pem: your-server.pem 就是您的证书在本地服务器的地址
配置浏览器
可以参考下面这篇文章学习如何在浏览器中简单的配置 socks 5 代理:
证书访问权限的问题
如果使用证书放问远程服务器遇到下面的错误
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
这是因为您的证书文件默认是所有人都可以访问的,您可以使用以下命令改为只有您自己可以访问:
chmod 600 your-server.pem
结论
我们可以使用 ssh 轻松建立 socks 5 通道,实现简便安全的解决内网资源访问问题。
|