众所周知,在没有公网IP的情况下是不能在外网访问我们内网服务的,比较麻烦。测试了几款穿透软件效果不尽人意,最近找到了一款简单适用的穿透,无需公网IP,也不需要自己搭建。简单穿透内网路由器
软路由器情况
N1(已经刷入 Armbian) 中使用 docker 创建 Openwrt 容器作为旁路由。
我的内网ip信息
内网IP因人而异,以下是我自己的设置
Armbian:192.168.123.2
Openwrt:192.168.123.10
思路
N1的 Armbian 中部署网云穿,对 192.168.123.10:80 进行内网穿透。
为什么不直接在 Openwrt 上部署网云穿?
因为 N1 盒子下的 Openwrt 经常更新,若在 Openwrt 上部署,每次更新后都需要重装网云穿,过于麻烦。
而 N1 盒子的 Armbian 系统更新频率低,且运行更加稳定,通过在 N1 内网访问 Openwrt 的方式完成网云穿部署,可以实现网云穿内网穿透服务长时间稳定运行
1 - 开通网云穿服务
1.1 - 进入网云穿工作台,选择`开通隧道
2 - 配置隧道
2.1 - 进入网云穿工作台 - 隧道开通/管理
编辑隧道:
内网地址
:填写内网的 Openwrt 的地址
内网端口
: 80
(用于访问 Openwrt 后台控制面板)
穿透协议
: TCP
2.2 - 复制令牌,此处令牌为5p6cypqw
3 - 在 N1盒子安装网云穿
3.1 - ssh登陆内网Armbian:ssh [email protected]
3.2 - 下载网云穿 Linux-Arm 版:curl -O http://xiaomy.net/download/linux/wyc_linux_arm
3.3 - 赋予网云穿程序可执行权限:chmod -R 777 ./wyc_linux_arm
4 - 启动网云穿内网穿透服务
4.1 - 通过ssh登陆 内网Armbian: ssh [email protected]
4.2 - 启动网云穿
网云穿有两种启动方法
方法一:运行网云穿后输入令牌
执行命令 ./wyc_linux_arm
根据提示输入令牌
方法二:在启动命令中填入令牌
执行命令 ./wyc_linux_arm -token=令牌号码
见到 “登录成功,现在您可访问 xxxx.xiaomy.net:12345,将直接映射到您本地的192.168.123.10:80·”
表示已经穿透成功,可以通过提示的域名进入 Openwrt 管理后台。
此时,网云穿服务在 Armbian 前台运行,中断ssh连接或 ctrl + c
都会终止内网穿透进程。想穿透服务稳定运行,就需要将服务设置为后台运行
5 - 后台运行网云穿服务
5.1 - 后台启动命令:nohup /root/wyc_linux_arm -token=令牌 >./wycout.txt 2>&1 &
5.2 - 查看启动信息:cat ./wycout.txt
5.3 - 查看网云穿进程id:ps -ef | grep wyc_linux_arm
停止后台服务:kill 进程id
刚刚我们的进程 id 是 15537
, 对应,命令:kill 15537
6 - 设置网云穿开机自启动并后台运行
6.1 - 进入crontab工具 crontab -e
6.2 - 在最底部添加这一行命令(请自行填入令牌)
@reboot nohup /root/wyc_linux_arm -token=令牌 >./wycout.txt 2>&1 &
填入后,保存设置,并退出
结语
通过以上设置,可以实现自家路由器后台的稳定内网穿透。