使用场景描述
有一台动态IP的商业宽带,只能上网但是不能提供HTTP服务。但是业务服务器使用这一条宽带联网,因此需要配合一个公网云服务器来做内网穿透和端口转发。
目前国内提供类似服务的商家有不少,但是价格都是非常的贵,比如花生壳。
如果域名没有备案的话,可以用CloudFlare的Tunnel来实现,但是国内访问速度慢且不稳定。
经过这一番操作后,公司内部的业务服务器几乎相当于上云了:公司的商业宽带Ping腾讯云的服务器延迟只有6ms;目前测试下来72小时无丢包;腾讯云的服务器下行正好能跑满公司宽带的上行;备案网站公网访问均解析到腾讯云实现合规。
解决方案
概要
商业宽带动态IP : 爱快A<-->OpenVPN<-->爱快B : 腾讯云固定IP
这里要注意的是,OpenWRT只能单向访问子网,如果要两边的子网都能互相访问的话要规划好网络。
为了方便描述,这里用【方括号】来代表需要使用的变量,具体如下:
商业宽带动态IP:解析DDNS到【DDNS域名】
业务服务器子网:【内网子网】
腾讯云固定IP:【公网IP】
业务服务器使用的网关路由:【爱快A】
腾讯云服务器安装的软路由:【爱快B】
准备工作
- 购买一台有公网IP的云服务器,我这里买的是腾讯云的轻量云服务器,好处是 1. 便宜 稳定 备案方便; 2. 下行带宽高且不计入流量,可以配合CDN 内网实现提速。
- 动态IP的宽带需要是有公网IP的,同时要使用DDNS解析到一个固定的域名,这里推荐直接用爱快软路由的DDNS DNSPod的解析,一会儿会写上。
- 给公有云服务器安装ubuntu系统,并使用VNC连接
配置【爱快A】
可以选择虚拟机安装,也可以自己攒软路由,当然还是最推荐直接买个硬件不到200块,省心稳定省电:https://u.jd.com/b1aONWk Wifi7 2.5G网口,太香了,我几天前买的价格是237元,心痛。
如果使用爱快来配置DDNS的话也很方便,但是不限于此,只要【DDNS域名】能够指向动态IP就可以了。爱快的设置方法如下图:
然后是关键步骤,开启OpenWRT服务端,具体看下面的截图。其中VPN网段需要是一个没有被使用的空闲网段,然后推送路由特别重要,这里要填写【内网子网】,这样【爱快B】到时候才能直接映射端口到内网的业务服务器。
配置【爱快B】
首先要给公有云服务器安装爱快系统,这里先引用一下官方教程:https://www.ikuai8.com/support/alzx/ikuaios.html
步骤1: 下载ISO安装包
x32位
wget https://www.ikuai8.com/download.php?n=/3.x/iso/iKuai8_x32_3.7.1_Build202304060952.iso -O ikuai8.iso
x64位 (需要4G及以上内存)
wget https://www.ikuai8.com/download.php?n=/3.x/iso/iKuai8_x64_3.7.1_Build202304060952.iso -O ikuai8.iso
步骤2: 挂载ISO镜像
sudo mount -o loop ikuai8.iso /mnt
步骤3: 复制ISO镜像启动文件
sudo cp -rpf /mnt/boot /
步骤4: 输入sudo reboot重启
sudo reboot
步骤5: 在腾讯云&阿里云的操作页面打开VNC界面:
登录/远程登录 --> VNC登录,正常ISO安装爱快系统
步骤6: 进入爱快控制台"开启外网访问WEB";按字母o其他选项 --> 2、开启外网访问web
------------------------
然后腾讯云的轻量云服务器有一个坑,搞了我挺久的。它在服务器里用的不是公网IP,而且要DHCP获取IP信息。因此首先要在爱快中把LAN1解绑网卡,然后再绑定WAN1到唯一的一张网卡上。之后设置WAN1的地址为轻量云分配的内网IP(特意去VNC里截了一张图):
完成后应该就能进爱快了,进去后先把这个WAN1改成DHCP的,防止以后腾讯改动。
最后根据下面的截图设置OpenVPN的客户端即可:
完成后启用,可以看到长这个样子:
最最最后,开启端口映射,即可将【内网子网】各种IP的端口暴露到公网了!