4G卡的linux机器充当路由器(Ubuntu16 设置iptables NAT )
? ? ? ?當你在戶外、移動環境的局域網內,有了一臺linux的小工控機,它能上外網,往往是通過4g SIM卡上網,那么如果你想讓其它機器,借助它上網,那么只要這臺4g卡機器還有一塊內置的以太網卡,就可以達到目的。這在移動物聯網的應用中,很常見。這樣就可以讓它充當一個簡便的路由器,而無需再配備什么專門的4g路由器,雖然那個也很便宜,但是更少的設備意味著故障點的減少+能源消耗的減少+對軟件路由的充分理解。
服務端設置:
首先在外網機器(假設以太網口IP為:192.168.1.1):
?1)在 /etc/sysctl.conf中打開?ip4轉發的注釋,保證重啟后不丟失iptables
net.ipv4.ip_forward=12) 設置寬容模式
apt install selinux-utilssetenforce 03)修改iptables
apt install iptablesiptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to 114.114.114.114 iptables -t nat -A POSTROUTING -j MASQUERADE114那行,標識啟用DNS轉發114.114.114.114(這是個外網地址),此行不是必需,但加上沒錯。
MASQUERADE 這行,必加。表示NAT轉發,這行為核心。
4) 保存iptables-save到文件
iptables-save>>?/etc/iptables.up.rules5)將文件,加載到網卡配置,啟動后不會失效
vim /etc/network/interfaces 底部插入
dns-nameservers 114.114.114.114 114.114.115.115 pre-up iptables-restore < /etc/iptables.up.rules客戶端設置:
? ? ? ? ?在客戶端,把IP設置成剛才服務端的 IP在一個網段,假設叫:192.168.1.2,然后把網關IP指向服務端的 IP。
必要時,要把192.168.1.2客戶端的DNS,手動設置成114.114.114.114,即便你在192.168.1.1的網口上安裝綁定了一個dhcp server,能讓客戶端192.168.1.2的IP是動態獲取的,仍然,要手動指定DNS。
通常,192.168.1.1的DHCP Server不是必須的,除非你有很多機器,要輪番借助這個網口上網,此時有dhcp Server就不用挨個手動指定IP了;如果只拖帶一個機器上網,那么給這個機器手工指定下IP就行了。
總結:
? ? ? ? NAT轉發的好處是簡單,設置方便;缺點是不能跟蹤機器上了哪些網站,權限控制較弱。比如:客戶端上的程序,訪問了某個視頻站點的端口8088,那么這個行為在網關機器上,如果運行netstat -ano|grep?:8088,是沒有任何輸出結果的,此時這個行為被軟件指令iptables??MASQUERADE所轉發,但是iptables并不那么容易設置日志(可以設,要看主機的類型參考為何沒有iptables的日志文件?-CSDN論壇?)
如果要做到這些,可以安裝像squid這樣的專業代理proxy。
附 iptables.up.rules 被修改后的內容:
root@localhost:# more /etc/iptables.up.rules# Generated by iptables-save v1.6.0 on Sun Oct 31 05:14:41 2021*raw :PREROUTING ACCEPT [6491:789212] :OUTPUT ACCEPT [3949:576976] COMMIT# Completed on Sun Oct 31 05:14:41 2021 # Generated by iptables-save v1.6.0 on Sun Oct 31 05:14:41 2021*nat :PREROUTING ACCEPT [164:10694] :INPUT ACCEPT [4:1208] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination 114.114.114.114 -A POSTROUTING -j MASQUERADE -A POSTROUTING -j MASQUERADE COMMIT# Completed on Sun Oct 31 05:14:41 2021 # Generated by iptables-save v1.6.0 on Sun Oct 31 05:14:41 2021 *mangle:PREROUTING ACCEPT [6491:789212] :INPUT ACCEPT [4555:667203] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [3949:576976] :POSTROUTING ACCEPT [3949:576976] COMMIT# Completed on Sun Oct 31 05:14:41 2021 # Generated by iptables-save v1.6.0 on Sun Oct 31 05:14:41 2021 *filter :INPUT ACCEPT [4555:667203] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [3949:576976] COMMIT# Completed on Sun Oct 31 05:14:41 2021總結
以上是生活随笔為你收集整理的4G卡的linux机器充当路由器(Ubuntu16 设置iptables NAT )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android开发之模拟器
- 下一篇: linux自动登出时间,Linux下实现