我最近购买了一个小米路由器,主要用作路由器和家庭媒体共享云盘,但是小米路由器是基于OpenWrt定制的,并且可以打开ssh登录系统,因此自然不会浪费这样的设备奢华的功能。
一个,打开ssh
我不会谈论这一步。我在互联网上搜索了很多内容。
第二,打开ssh外部端口
OpenWrt的默认WAN端口是拒绝外部访问的端口,主要是通过防火墙控制的。我在Internet上搜索了一些方法来实现该功能,但是当扔掉后面的东西时,我仍然老老实实地阅读OpenWrt的防火墙文档。再次。
OpenWrt通过UCI系统配置防火墙。 UCI是统一配置接口的缩写,它是OpenWrt引入的一组配置参数管理系统。
在OpenWrt的默认防火墙配置(/ etc / config / firewall)中,WAN端口配置如下:
config?zone
????????option?name?'wan'
????????option?network?'wan'
????????option?input?'REJECT'
????????option?output?'ACCEPT'
????????option?forward?'REJECT'
????????option?masq?'1'
????????option?mtu_fix?'1'
您可以看到输入被拒绝。这是为了确保路由器的安全性,我们要做的就是在完整的墙壁上打一个洞。在配置中添加以下代码,以允许访问wan端口上的端口22:
config?rule?????????????????????????????????????????????????????????????????
????????option?name?'Allow-wan-ssh'?????????????????????????????????????????
????????option?src?'wan'????????????????????????????????????????????????????
????????option?proto?'tcp'??????????????????????????????????????????????????
????????option?dest_port?'22'???????????????????????????????????????????????
????????option?target?'ACCEPT'
三,建立到公司内部网的ssh隧道
我还在公司的linux环境中工作,并使用ssh进行工作。因此,挖掘ssh隧道可以方便地使用您自己的计算机访问公司网络,而不必每次都携带公司计算机回家,然后使用麻烦的VPN连接Up!决定性地获得它!
首先,将公司计算机的ssh公钥复制到小米路由器上的authorized_keys文件中。互联网上有很多关于ssh密钥登录的文章,我不会多说,主要是关于如何挖隧道的事情:
由于公司的计算机位于内部网络中,并且小米路由器具有公用网络ip(电信拨号,因此每次拨号时IP都会更改,因此请使用路由器随附的DDNS功能绑定特定域)名称,我使用Peanut Shell Free二级域名,非常方便),因此外部网络无法访问公司的机器,并且公司的机器可以访问我的小米路由器,因此我们需要在公司的计算机上进行操作反向隧道。
1,通过SSH登录到端口22上的隧道。
ssh?-CfNg?-R?5212:localhost:22?root@myMiRouter.com
这是将小米路由器上的端口5212的数据转发到本地22端口,以便当我使用小米路由器上的端口5212进行连接时,可以连接到公司的ssh。
2,socks5 Internet代理。
ssh?-CfNg?-R?1314:localhost:1080?root@myMirouter.com
这时,除了反向隧道外,我们还需要一个动态转发隧道:
ssh?-CfNg?-D?localhost:1080?localhost
因为诸如Web浏览和Internet访问之类的应用程序没有特定的端口号,所以它可能是http端口80,https端口465或用户指定的端口。
通过这种方式,我们会将通过小米路由器上的端口1314访问的数据转发到Intranet机器,以便我们可以浏览Intranet网页。
此外,由于路由拨号IP地址将更改,这可能导致ssh连接断开,因此所有ssh都使用autossh,而autossh是ssh的包装,可以自动重新连接。
三,dropbear服务器的部分配置
这是一个单独的部分,主要是因为我已经讨论了很长时间了。 。 。完成上述配置后,登录到小米路由器,发现该公司的Intranet可以与小米路由器中的ssh连接。 ssh命令是:
ssh?-p?5212?user@localhost
但是我需要使用小米路由器后面的个人计算机登录公司的Intranet。这时,我发现它不起作用。连接到小米路由器以登录我的计算机时,命令为:
ssh?-p?5212?user@192.168.31.1
ssh:?Exited:?Error?connecting:?Connection?refused
发现无法连接。登录小米路由器后,我发现端口5212仅侦听本地主机的本地回送地址,因此使用lan ip时,即使在小米路由器的系统中也无法登录。然后使用以下命令进行连接,但结果仍然相同,仅监视12 7. 0. 0. 1。
ssh?-CfNg?-R?192.168.31.1:5212:localhost:22?root@MiRouter.com
root@XiaoQiang:~#?netstat?-anp?|?grep?5212
tcp????????0??????0?127.0.0.1:5212??????????0.0.0.0:*???????????????LISTEN??????12029/dropbear
tcp????????0??????0?::1:5212????????????????:::*????????????????????LISTEN??????12029/dropbear
所以我认为这不是侦听地址的问题(确实走错了路径!),起初我以为lan端口的数据没有转发,所以我一直在研究防火墙配置并进行淘汰各种前锋。 ,重定向。 。 。这就是我如实阅读防火墙文档的原因。后来,我去了OpenWrt论坛问问题。有人给出了非常直接的答案。我需要监视19 2. 16 8. 3 1. 1。环回将不起作用。这时,我意识到这根本不是转发数据的问题,而是地址,然后搜索相关问题的问题,最后发现在ssh中,只有在GatewayPorts开关打开时,其他计算机可以与此计算机共享本地端口转发,否则,将仅转发本地localhost端口。 OpenSSH的默认设置是打开此开关,因此Internet上的大多数文章都没有提及此设置,这使我遭受了T_T
DropBear打开设置需要在配置文件(/ etc / config / dropbear)中使用以下设置
config?dropbear
????????option?PasswordAuth?'on'
????????option?RootPasswordAuth?'on'
????????option?Port?????????'22'
#???????option?BannerFile???'/etc/banner'
#below?are?added?for?share?ssh?tunnel
????????option?'GatewayPorts'?'on'
此外,dropbear必须显示指定的端口,否则它将仅绑定回送地址,因此您需要在上述反向隧道命令中添加ip地址19 2. 16 8. 3 1. 1,并且您可以使用自己的计算机连接到公司的内部计算机,浏览器也可以通过配置socks5代理连接到Internet!
参考文献:
1,OpenWrt防火墙配置:
2,ssh端口转发:
3,GatewayPorts设置:
本文来自本站,转载请注明本文网址:
http://www.pc-fly.com/a/tongxingongju/article-366658-1.html
……