背景
经过家里网络防火墙设定,导致服务器不能直接被访问,虽然达到了安全,出门在外还是会存在一些不便之处。
解决方法
通过使用nc命令,配合ssh的ProxyCommand
,便可以实现ssh
通过代理访问服务器进行连接。
示例如下:
ssh -o ProxyCommand="nc -X 5 -x 127.0.0.1:1080 %h %p" root@server
nc命令的常用参数:
-X是指定代理协议
4是socks4协议
5是socks5协议
-x是指定代理服务器和端口[代理服务器:端口]
默认socks使用1080
HTTPS使用3128
个人定制情况
通过家里树莓派开方的ssh端口,我的方案是通过SSH -D
实现socks5端口共享,由于通过进入树莓派在进入服务器方式一致,但这样能实现http往也访问等操作。
整体穿透如下:外部网络->互联网->家庭树莓派->家庭服务器;
- 通过SSH搭建socks代理
ssh -D 1080 root@home
- 登陆服务器
ssh -o ProxyCommand="nc -X 5 -x 127.0.0.1:1080 %h %p" root@server