因工作环境与服务器不在同一局域网下,为了安全性,不公开内部端口,因此需要进行外网对局域网的服务进行访问,我的ssh账号拥有shell权限,可以建立SSH Tunnel。
以下是代理SSH的步骤:
打开Terminal
1 | ssh -D 7070 test@test.com |
-D 7070 表示在本地开通一个SOCKS代理,监听的端口号是7070
test@test.com 表示远程服务器用户名@域名或IP
维持ssh连接
1 | top |
或者修改本地配置文件
1 | sudo vi ~/.ssh/_config |
添加两行
1 | ServerAliveInterval 120 |
注意,这个Terminal不能关闭,否则ssh tunnel会关闭。
修改本地网络代理
System Preferences -> Network 中选择当前连接,点击Advanced。
切换到Proxies,选择SOCKS Proxy Server,host填写localhost,端口号改为7070,并勾选SOCKS Proxy的CheckBox即可。
结尾
这里直接开启的是全局代理,经测试在代码中进行GET/POST请求也能得到结果了,不需要在代码中进行代理,不过需要注意的是,当你使用localhost和127.0.0.1的时候是不会访问服务器上的内容的,需要使用服务器的局域网IP来进行访问。