|
背景 在新的公司控制比较严格,连接公司的局域网很多站都上不了,对于程序开发有很多不方便的地方,有必要搭建自己的个人私有网络。下图是网络的组成: 4G棒 4G棒需要支持usb网卡功能,插到Debian工控机可以自动生成usb网卡。有些4G棒带wifi功能,可以通过wifi连接,这里不推荐直接用4g棒的wifi,因为wifi功能比较弱,网络稳定性不如专业wifi路由器。现在4G棒支持ipv4和ipv6 工控机 这里用的工控机是Debian系统,Debian系统支持apt安装各种网络工具,系统比较稳定,适合长期不断电运行。要求工控机至少带一个有线RJ45网口,方便将usb网卡nat转有线网卡。 wifi路由器 普通路由器即可,但是为了支持ipv6,要选择带ipv6功能的路由器。一般商业路由器带一个WAN口和若干LAN口,其中WAN口连接工控机的网口,进行静态ip上网。 实施方法1、工控机通过4B棒上网
将4G棒插入到工控机的USB口,用ifconfig命令查看当前的USB网卡。 可以看到4G棒已经通过生成usb0网卡,并且分配了ipv4和ipv6,工控机具备连接外网的能力。
2.usb0通过NAT转有线网卡enP3p49s0
有线网卡需要具备dhcp服务器功能,既要支持ipv4又要支持ipv6,需要安装两个工具dnsmasq和radvd,执行sudo apt install dnsmasq radvd,然后修改/etc/dnsmasq.conf,添加内容如下: - # 监听接口
- interface=enP3p49s0
- no-dhcp-interface=lo,usb0,enP4p65s0,wlP2p33s0
- # IPv4 DHCP
- dhcp-range=192.168.123.100,192.168.123.200,24h
- dhcp-option=option:router,192.168.123.1
- dhcp-option=option:dns-server,192.168.123.1
- # IPv6 - 禁用DHCPv6,让RADVD处理SLAAC
- # dhcp-range=fd00::100,fd00::200,64,24h
- # DNS设置
- server=8.8.8.8
- server=2001:4860:4860::8888
- cache-size=1000
复制代码 然后编辑/etc/radvd.conf,添加内容如下:- interface enP3p49s0
- {
- AdvSendAdvert on;
- AdvManagedFlag off;
- AdvOtherConfigFlag on;
-
- # 路由通告间隔
- MinRtrAdvInterval 3;
- MaxRtrAdvInterval 10;
-
- # 前缀配置
- prefix fd00::/64
- {
- AdvOnLink on;
- AdvAutonomous on;
- AdvRouterAddr off;
- };
-
- # DNS服务器配置(不使用弃用的preference参数)
- RDNSS fd00::1
- {
- # 移除弃用的AdvRDNSSPreference参数
- };
- };
复制代码 然后需要设置debian支持usb0到enP3p49s0的ipv4和ipv6转发功能,脚本如下:- #!/bin/bash
- echo "========== usb0共享ipv4和ipv6到网卡enP3p49s0配置 =========="
- echo "清除所有 IPv4/IPv6 地址:"
- sudo ip addr flush dev enP3p49s0 &&
- sleep 2s
- echo "关闭 enP3p49s0 网卡"
- sudo ip link set enP3p49s0 down &&
- sleep 2s
- echo "设置ipv4地址"
- sudo ip addr add 192.168.123.1/24 broadcast 192.168.123.255 dev enP3p49s0 &&
- sleep 2s
- echo "设置ipv6地址"
- sudo ip -6 addr add fd00::1/64 dev enP3p49s0 &&
- sleep 2s
- sudo ip -6 addr add fe80::c0:74ff:fe2b:ff1b/64 dev enP3p49s0 &&
- sleep 2s
- echo "查看网卡"
- ip addr show enP3p49s0 &&
- sleep 1s
- echo "启动网卡"
- sudo ip link set enP3p49s0 up &&
- sleep 4s
- echo "添加ipv4转发"
- sudo iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE &&
- sleep 1s
- sudo iptables -A FORWARD -i enP3p49s0 -o usb0 -j ACCEPT &&
- sleep 1s
- sudo iptables -A FORWARD -i usb0 -o enP3p49s0 -m state --state RELATED,ESTABLISHED -j ACCEPT &&
- sleep 1s
- sudo iptables-save | sudo tee /etc/iptables/rules.v4 &&
- sleep 1s
- echo "添加ipv6转发"
- sudo ip6tables -t nat -A POSTROUTING -o usb0 -j MASQUERADE &&
- sleep 1s
- sudo ip6tables -A FORWARD -i enP3p49s0 -o usb0 -j ACCEPT &&
- sudo ip6tables -A FORWARD -i usb0 -o enP3p49s0 -m state --state RELATED,ESTABLISHED -j ACCEPT &&
- sleep 1s
- sudo ip6tables -A INPUT -p icmpv6 -j ACCEPT &&
- sleep 1s
- sudo ip6tables -A FORWARD -p icmpv6 -j ACCEPT &&
- sleep 1s
- sudo ip6tables -A INPUT -p udp --dport 546 -j ACCEPT &&
- sleep 1s
- sudo ip6tables -A INPUT -p udp --dport 547 -j ACCEPT &&
- sleep 1s
- sudo ip6tables-save | sudo tee /etc/iptables/rules.v6 &&
- sleep 1s
- echo "重启dnsmasq服务"
- sudo systemctl restart dnsmasq &&
- sleep 2s
- echo "重启radvd服务"
- sudo systemctl restart radvd &&
- sleep 10s
- echo "========== 网络诊断 =========="
- echo ""
- echo "1. 接口状态:"
- ip addr show enP3p49s0
- echo ""
- ip addr show usb0
- echo ""
- echo "2. IPv6路由:"
- ip -6 route
- echo ""
- echo "3. IPv6转发状态:"
- sysctl net.ipv6.conf.all.forwarding net.ipv6.conf.default.forwarding net.ipv6.conf.enP3p49s0.forwarding net.ipv6.conf.usb0.forwarding
- echo ""
- echo "4. 服务状态:"
- systemctl status radvd --no-pager | head -20
- echo ""
- systemctl status dnsmasq --no-pager | head -20
- echo ""
- echo "5. 防火墙规则:"
- sudo ip6tables -L -vn
- echo ""
- sudo ip6tables -t nat -L -vn
- echo ""
- echo "6. 测试连通性:"
- echo "从主机ping外部IPv6:"
- ping6 -c 2 2001:4860:4860::8888
- echo ""
- echo "从enP3p49s0 ping自己:"
- ping6 -I enP3p49s0 -c 2 fd00::1
复制代码 执行一下脚本,即可进行网络nat转换。
可以看到有线网卡enP3p49s0已经有ipv4和ipv6。 设置wif路由器这里用小米路由器AX1500,将小米路由器的WAN口和工控机有线网口连接,让工控机给小米路由器分配ipv4和ipv6,登陆小米路由器web上网设置页面,设置如下: 设置完成后,等待路由器连接到有线网络,直到出现ipv4地址和ipv6地址,说明网络连接成功。 测试ipv6连接游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
出现以下测试结果说明ipv6已经支持 运营商之间ipv6速度问题 虽然三大运营商都是支持ipv6,但是存在跨运营商限制速问题。如果打算用ipv6连接家里的网络和自搭建公司个人网络互通,最好是用同一家运营商,这样不存在速度问题,基本都能拉满。家里面用的是联通光纤送了动态公网ipv6,通过软路由PPPOE拨号上网,用DDNS-Go进行动态域名解析到ipv6地址。 debian工控机的其他用途 除了上述nat转换功能,还可以用工控机来做其他事情,下面列举几个
1.网络协议和数据分析:由于所有网络都是经过工控机nat转换,所有网络请求都是经过工控机,安装wireshark后,可以用来抓所有的网络包;
2.工程代码托管:,比如安装gitea后,就可以像github那样来托管代码;
3.个人博客托管:,比如安装typecho后,可以在后端编辑文章,记录自己的技术分享;
4.代码测试:linux系统有很多工具,很方便安装各种软件库,然后再借助vscode的remote开发,随时连接到服务器进行代码学习开发验证;
5.资料备份:不像收费的云服务器实例有容量限制,个人服务器自己加装固态硬盘,可以把使用频率低的问题拷贝到服务器备份。 |