4G卡的linux机器充当路由器(Ubuntu16 设置iptables NAT )
? ? ? ?當(dāng)你在戶外、移動(dòng)環(huán)境的局域網(wǎng)內(nèi),有了一臺(tái)linux的小工控機(jī),它能上外網(wǎng),往往是通過4g SIM卡上網(wǎng),那么如果你想讓其它機(jī)器,借助它上網(wǎng),那么只要這臺(tái)4g卡機(jī)器還有一塊內(nèi)置的以太網(wǎng)卡,就可以達(dá)到目的。這在移動(dòng)物聯(lián)網(wǎng)的應(yīng)用中,很常見。這樣就可以讓它充當(dāng)一個(gè)簡便的路由器,而無需再配備什么專門的4g路由器,雖然那個(gè)也很便宜,但是更少的設(shè)備意味著故障點(diǎn)的減少+能源消耗的減少+對(duì)軟件路由的充分理解。
服務(wù)端設(shè)置:
首先在外網(wǎng)機(jī)器(假設(shè)以太網(wǎng)口IP為:192.168.1.1):
?1)在 /etc/sysctl.conf中打開?ip4轉(zhuǎn)發(fā)的注釋,保證重啟后不丟失iptables
net.ipv4.ip_forward=12) 設(shè)置寬容模式
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那行,標(biāo)識(shí)啟用DNS轉(zhuǎn)發(fā)114.114.114.114(這是個(gè)外網(wǎng)地址),此行不是必需,但加上沒錯(cuò)。
MASQUERADE 這行,必加。表示NAT轉(zhuǎn)發(fā),這行為核心。
4) 保存iptables-save到文件
iptables-save>>?/etc/iptables.up.rules5)將文件,加載到網(wǎng)卡配置,啟動(dòng)后不會(huì)失效
vim /etc/network/interfaces 底部插入
dns-nameservers 114.114.114.114 114.114.115.115 pre-up iptables-restore < /etc/iptables.up.rules客戶端設(shè)置:
? ? ? ? ?在客戶端,把IP設(shè)置成剛才服務(wù)端的 IP在一個(gè)網(wǎng)段,假設(shè)叫:192.168.1.2,然后把網(wǎng)關(guān)IP指向服務(wù)端的 IP。
必要時(shí),要把192.168.1.2客戶端的DNS,手動(dòng)設(shè)置成114.114.114.114,即便你在192.168.1.1的網(wǎng)口上安裝綁定了一個(gè)dhcp server,能讓客戶端192.168.1.2的IP是動(dòng)態(tài)獲取的,仍然,要手動(dòng)指定DNS。
通常,192.168.1.1的DHCP Server不是必須的,除非你有很多機(jī)器,要輪番借助這個(gè)網(wǎng)口上網(wǎng),此時(shí)有dhcp Server就不用挨個(gè)手動(dòng)指定IP了;如果只拖帶一個(gè)機(jī)器上網(wǎng),那么給這個(gè)機(jī)器手工指定下IP就行了。
總結(jié):
? ? ? ? NAT轉(zhuǎn)發(fā)的好處是簡單,設(shè)置方便;缺點(diǎn)是不能跟蹤機(jī)器上了哪些網(wǎng)站,權(quán)限控制較弱。比如:客戶端上的程序,訪問了某個(gè)視頻站點(diǎn)的端口8088,那么這個(gè)行為在網(wǎng)關(guān)機(jī)器上,如果運(yùn)行netstat -ano|grep?:8088,是沒有任何輸出結(jié)果的,此時(shí)這個(gè)行為被軟件指令iptables??MASQUERADE所轉(zhuǎn)發(fā),但是iptables并不那么容易設(shè)置日志(可以設(shè),要看主機(jī)的類型參考為何沒有iptables的日志文件?-CSDN論壇?)
如果要做到這些,可以安裝像squid這樣的專業(yè)代理proxy。
附 iptables.up.rules 被修改后的內(nèi)容:
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總結(jié)
以上是生活随笔為你收集整理的4G卡的linux机器充当路由器(Ubuntu16 设置iptables NAT )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android开发之模拟器
- 下一篇: 用友研究院院长吕建伟:阿里云正在从IBM