宿舍路由器想实现个登录远程ssh(也是openwrt系统),然后转发,宿舍所有的人都可以使用这个端口上网了,在网上查了些资源,结合openwrt wiki和这篇实现了。
1.Openwrt自带dropbear转发SSH只能监听本地端口,首先安装openssh客户端。
|
rm -rf /usr/bin/ssh #删除ssh软链接 rm -rf /usr/bin/scp #删除scp软链接 opkg update #更新列表 opkg install openssh-client openssh-keygen#安装openssh客户端 |
2.本地(路由器上)生成密钥
|
ssh-keygen -t dsa #注意看提示密钥文件保存到哪了 |
3.将密钥上传到远程服务器上。由于我的远程服务器的也是个openwrt,ssh服务端是dropbear,以此为例,可以实现私钥方式登录dropbear。其他ssh服务端路径等可能不同。
|
scp ~/.ssh/id_dsa.pub root@192.168.1.1:/tmp #将密钥文件通过scp传到远程服务器的tmp分区下 cd /etc/dropbear #定位到dropbear文件夹 cat /tmp/id_*.pub >> authorized_keys #将密钥写入authorized_keys文件 chmod 0600 authorized_keys #更改权限 |
4.登录远程服务器,转发端口
|
ssh -NfD 0.0.0.0:7070 user@server #端口号7070,把user改成对应用户名,server为服务器地址 |
5.如果网络断开或重新拨号SSH会断开,可新建shell脚本监控ssh自动重新连接:
|
#!/bin/bash while true do if netstat -tlnp|grep ":7070" then echo "ssh is working" else ssh -CNfD 192.168.1.1:7070 user@server >/dev/null 2>&1 & #同样要改 fi sleep 300 #每300s一次 done |
你也可以将上面这个监控脚本(比如叫autossh.sh,放在etc里)加入到开机启动里(文件/etc/rc.local),就能开机启动、保持监控了:
有些工作可以在winscp软件和luci中操作。完成之后本地路由器的客户端就可以用路由器ip:7070直接使用这个socks5代理了.其他路由器系统如ddwrt也可以尝试一下。