標題: 在Debian12將隨身4G棒NAT轉有線網絡,支持ipv4和ipv6 [打印本頁]
作者: 沒有你 時間: 2026-1-18 14:48
標題: 在Debian12將隨身4G棒NAT轉有線網絡,支持ipv4和ipv6
背景 在新的公司控制比較嚴格,連接公司的局域網很多站都上不了,對于程序開發有很多不方便的地方,有必要搭建自己的個人私有網絡。下圖是網絡的組成:
nat網絡.png (29.45 KB, 下載次數: 0)
下載附件
2026-1-18 14:24 上傳
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網卡。
截屏2026-01-18 11.30.58.png (103.69 KB, 下載次數: 0)
下載附件
2026-1-18 14:25 上傳
可以看到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轉換。
截屏2026-01-18 12.11.30.png (333.63 KB, 下載次數: 0)
下載附件
2026-1-18 14:41 上傳
可以看到有線網卡enP3p49s0已經有ipv4和ipv6。 設置wif路由器這里用小米路由器AX1500,將小米路由器的WAN口和工控機有線網口連接,讓工控機給小米路由器分配ipv4和ipv6,登陸小米路由器web上網設置頁面,設置如下:
截屏2026-01-18 12.18.35.png (58.15 KB, 下載次數: 0)
下載附件
2026-1-18 14:42 上傳
截屏2026-01-18 12.18.54.png (61.12 KB, 下載次數: 0)
下載附件
2026-1-18 14:43 上傳
設置完成后,等待路由器連接到有線網絡,直到出現ipv4地址和ipv6地址,說明網絡連接成功。
截屏2026-01-18 12.19.07.png (153.6 KB, 下載次數: 0)
下載附件
2026-1-18 14:43 上傳
測試ipv6連接
出現以下測試結果說明ipv6已經支持
截屏2026-01-18 12.25.58.png (514.54 KB, 下載次數: 0)
下載附件
2026-1-18 14:44 上傳
截屏2026-01-18 12.26.58.png (485.68 KB, 下載次數: 0)
下載附件
2026-1-18 14:44 上傳
運營商之間ipv6速度問題 雖然三大運營商都是支持ipv6,但是存在跨運營商限制速問題。如果打算用ipv6連接家里的網絡和自搭建公司個人網絡互通,最好是用同一家運營商,這樣不存在速度問題,基本都能拉滿。家里面用的是聯通光纖送了動態公網ipv6,通過軟路由PPPOE撥號上網,用DDNS-Go進行動態域名解析到ipv6地址。
debian工控機的其他用途 除了上述nat轉換功能,還可以用工控機來做其他事情,下面列舉幾個
1.網絡協議和數據分析:由于所有網絡都是經過工控機nat轉換,所有網絡請求都是經過工控機,安裝wireshark后,可以用來抓所有的網絡包;
2.工程代碼托管:,比如安裝gitea后,就可以像github那樣來托管代碼;
3.個人博客托管:,比如安裝typecho后,可以在后端編輯文章,記錄自己的技術分享;
4.代碼測試:linux系統有很多工具,很方便安裝各種軟件庫,然后再借助vscode的remote開發,隨時連接到服務器進行代碼學習開發驗證;
5.資料備份:不像收費的云服務器實例有容量限制,個人服務器自己加裝固態硬盤,可以把使用頻率低的問題拷貝到服務器備份。
| 歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |