概述
起因是想要在家里或者使用流量能够访问校园网抢课以及其他操作,路由器刷的华硕固件,正好有搭建 ss 服务器的功能。
百度一下大概的实现方式,大多都是采用 ngrok 或者花生壳内网穿透的方式,实际测试了一下,ngrok 免费的服务很难连接上且不稳定。花生壳直接是付费服务。自己搭建 ngrok 又需要一个域名。
结合专业知识,只需要将 ss 服务的端口转发到公网上就可以了,所以最终采用了 ssh端口转发+ss-server 的方式,不得不推一下,ssh端口转发真的很方便快捷 :P
ssh端口转发
1 | ssh -NfR port_on_your_vps:192.168.123.1:80 username@*.*.*.* |
这个有个坑点,在默认没有进行设置的情况下直接转发,在 vps 上反向代理的 lookup 的 ip 即 127.0.0.1,并不是公网 ip,在姜哥的指点下了解了这个点。
解决方法:
首先 ssh 登录到公网主机,修改 sshd 的配置文件 /etc/ssh/sshd_config
,加入如下选项
GatewayPorts yes
然后重启 ssh 服务,service sshd restart
每次登陆都需要设置密码太麻烦,设置免密登录
华硕固件中 ssh 服务采用的 Dropbear,没有 ssh-keygen,可用 dropbearkey 替代
dropbearkey -t rsa -f .ssh/id_dropbear_rsa | grep "ssh-rsa" > .ssh/id_dropbear_rsa.pub
生成公私匙,将公匙 id_dropbear_rsa.pub 上传到 vps,具体可以参照
https://my.oschina.net/u/2306127/blog/3027225
最后写了个脚本,然后设置了定时执行,舒服了。-i
参数指定的是 ssh 的私匙,这个要注意
1 |
|