4G卡的linux机器充当路由器(Ubuntu16 设置iptables NAT )

       当你在户外、移动环境的局域网内,有了一台linux的小工控机,它能上外网,往往是通过4g SIM卡上网,那么如果你想让其它机器,借助它上网,那么只要这台4g卡机器还有一块内置的以太网卡,就可以达到目的。这在移动物联网的应用中,很常见。这样就可以让它充当一个简便的路由器,而无需再配备什么专门的4g路由器,虽然那个也很便宜,但是更少的设备意味着故障点的减少+能源消耗的减少+对软件路由的充分理解。

服务端设置:

首先在装有4g卡的外网机器(假设以太网口IP为:192.168.1.1):

 1)在 /etc/sysctl.conf中打开 ip4转发的注释,保证重启后不丢失iptables

net.ipv4.ip_forward=1

2) 设置宽容模式

apt install selinux-utils

setenforce 0

3)修改iptables

apt install iptables

iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to 114.114.114.114
iptables -t nat -A POSTROUTING -j MASQUERADE

114那行,标识启用DNS转发114.114.114.114(这是个外网地址),此行不是必需,但加上没错。

MASQUERADE 这行,必加。表示NAT转发,这行为核心。

4) 保存iptables-save到文件

iptables-save>> /etc/iptables.up.rules

5)将文件,加载到网卡配置,启动后不会失效

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指向4g机器(算是服务端)的 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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值