OpenWRT如何穿透内网

这篇文章将为大家详细讲解有关OpenWRT如何穿透内网,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

  UMU 把路由器放在公司,然后在家里想登陆它,这时候就有一个问题了:如何穿越到公司内网呢?答案就是:拨个 VPN 到公司去……然后本文就完了!

  哈,开个玩笑,当然是要说没有 VPN 用的情况了!

  真正的答案是:搞个 SSH 反向连接,然后用 autossh 保护起来。您需要准备一台有固定外网 IP 的服务器,UMU 使用的是某某云主机(避免广告嫌疑就不说了,呵,广告位招租),如果不想出钱购买,可以用家庭 ADSL + 动态域名代替,效果可能差一些,但基本可用。

  为了更清晰地说明,列一下各个角色:

1、控制端:UMU 的笔记本,不管在什么网络,都要求能够连接到放在公司的路由器;

2、中转服务器:一台某某云主机,固定 IP,用 cloud_ip 表示;

3、被控端:放在公司的路由器,内网 IP,用 internal_ip 表示。

  基本原理:让被控端主动连接中转服务器,然后控制端连接中转服务器,就可以间接连接被控端了。

  被控端安装、设置,主要参考:http://wiki.openwrt.org/doc/howto/autossh

opkg update
opkg install autossh
dropbearkey -t rsa -f /etc/dropbear/id_rsa
dropbearkey -y -f /etc/dropbear/id_rsa | grep ssh-rsa

  把上面最后一行命令的输出复制下,注意只有一行,待会儿要上传到中转服务器。或者也可以把最后一条命令改为打印到文件,再用 WinSCP 下载到本地。

dropbearkey -y -f /etc/dropbear/id_rsa | grep ssh-rsa > /tmp/pubkey

  查看一下 autossh 配置:

uci get autossh.@autossh[0].ssh

  如果没有问题,就把中转服务器的信息设置上去:

uci set autossh.@autossh[0].ssh='-i /etc/dropbear/id_rsa -f -N -T -R 2222:localhost:22 <user>@<cloud_ip>'
uci commit

  接下来登录到中转服务器(Linux Server,如果是 OpenWRT,要把以下的  ~/.ssh/authorized_keys 换成 /etc/dropbear/authorized_keys ),把公钥(/tmp/pubkey)上传:

echo "key 内容" >> ~/.ssh/authorized_keys
# 或者
#cat pubkey >> ~/.ssh/authorized_keys
chmod 0700 ~/.ssh/
chmod 0600 ~/.ssh/authorized_keys
vi /etc/ssh/sshd_config
# 改为允许证书登录
service sshd restart

  /etc/ssh/sshd_config 需要打开的有:

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

GatewayPorts yes

  到路由器上测试:

ssh -i /etc/dropbear/id_rsa -f -N -T -R 2222:localhost:22 <user>@<cloud_ip>

  如果成功则大功告成,以后只需要 ssh 到中转服务器的 2222 端口就等于连接到路由器了。最后配合本地端口转发,可以连接很多内网机器了。如下图:

OpenWRT如何穿透内网  openwrt 第1张

  再加一台路由器,用于做本地端口转发,就可以让 Surface、iPad 之类的设备也能快乐地穿透到内网了。

关于“OpenWRT如何穿透内网”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram