wap网站制作动态,深圳企业名录深圳黄页,wordpress amp改成mip,宁波网站推广优化外包本次完全参考 Ubuntu20.04服务器开启路由转发让局域网内其他电脑通过该服务器连接外网
ubuntu 官方防火墙文档 Security - Firewall
本人从前的操作 Ubuntu 18.04 通过 ufw route 配置网关服务器
网关 配置内网DNS 服务器
背景知识
从前总认为既然UFW简化了 iptables 所以执着的要用 ufw。这次看到大家使用 iptables 也很方便而且感觉更好理解所以我也用 iptables 来完成
主要还是从前不太理解 NAT 和 MASQUERADE 今天简单学习记录一下网上抄来的一点知识
nat表需要的三个链 1. PREROUTING:可以在这里定义进行目的NAT的规则因为路由器进行路由时只检查数据包的目的ip地址所以为了使数据包得以正确路由我们必须在路由之前就进行目的NAT;2. POSTROUTING:可以在这里定义进行源NAT的规则系统在决定了数据包的路由以后在执行该链中的规则。3. OUTPUT:定义对本地产生的数据包的目的NAT规则。IP Masquerade
IP Masquerade 也被称为网络地址转换NAT和网络连接共享其他一些流行的操作系统。基本上这是一种允许不具有公共Internet范围IP地址的计算机与位于Internet和Internet之间的另一台计算机与Internet上的其他计算机通信的方法。如您所知IP地址在Internet上用于标识机器。给定一个具有IP地址的数据包组成Internet的每个路由器都知道将数据包发送到何处以将其发送到目的地的信息。现在在局域网和其他未直接连接到Internet的网络中还保留了一些IP地址范围供私人使用。保证这些专用地址不会在公共Internet上使用。这会导致连接到专用网络的计算机使用专用IP地址的问题因为它们无法直接连接到Internet。他们没有允许在公共Internet上使用的IP地址。IP Masquerade通过允许具有私有IP地址的计算机与Internet通信来解决此问题同时修改该计算机的数据包以使用有效的公共IP地址代替原始的私有IP地址。从Internet返回的数据包在到达专用IP机之前被修改回使用原始IP地址。实际完成起来倒是不复杂就是简单的三条规则
环境 网关服务器 虚拟机 ubuntu 18.04 eth0:221.122.XXX.XXX eth1: 192.168.0.197 测试服务器 虚拟机 ubuntu 20.04 eth0: 192.168.0.196
操作
除了测试操作之外所有操作均在网关服务器192.168.0.197 既然打算使用 iptables 最好 ufw disable 以免冲突 开启 ip 转发 临时修改生效 echo 1 /proc/sys/net/ipv4/ip_forward永久修改 sudo vim /etc/sysctl.conf 去掉注释 net.ipv4.ip_forward1执行生效 sudo sysctl -p /etc/sysctl.conf 编写 iptables 规则 sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPTsudo iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPTsudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE理解 前两条很直观就是转发只有这两条只能 ip 方式访问外网第三条通过外网网卡 eth0 启用 MASQUERADE 达到域名访问外网的目的保存规则 $ sudo iptables-save # Generated by iptables-save v1.6.1 on Fri Jul 28 09:19:06 2023*nat:PREROUTING ACCEPT [53:2985]:INPUT ACCEPT [1:145]:OUTPUT ACCEPT [0:0]:POSTROUTING ACCEPT [0:0]-A POSTROUTING -o eth0 -j MASQUERADECOMMIT# Completed on Fri Jul 28 09:19:06 2023# Generated by iptables-save v1.6.1 on Fri Jul 28 09:19:06 2023*filter:INPUT ACCEPT [203:14633]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [138:17681]-A FORWARD -i eth1 -o eth0 -j ACCEPT-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPTCOMMIT# Completed on Fri Jul 28 09:19:06 2023测试和验证 在测试服务器上 192.168.0.196 $ cat 00-installer-config.yaml # This is the network config written by subiquitynetwork:ethernets:eth0:addresses:- 192.168.0.196/24gateway4: 192.168.0.197nameservers:addresses:- 192.168.0.197- 223.5.5.5searc$ ping jd.com PING jd.com (106.39.171.134) 56(84) bytes of data.64 bytes from 106.39.171.134 (106.39.171.134): icmp_seq1 ttl47 time201 ms64 bytes from 106.39.171.134 (106.39.171.134): icmp_seq2 ttl47 time144 ms64 bytes from 106.39.171.134 (106.39.171.134): icmp_seq3 ttl47 time6.84 ms^C在网关服务器上验证 192.168.0.197 $ sudo iptables -t nat -nL Chain PREROUTING (policy ACCEPT)target prot opt source destination Chain INPUT (policy ACCEPT)target prot opt source destination Chain OUTPUT (policy ACCEPT)target prot opt source destination Chain POSTROUTING (policy ACCEPT)target prot opt source destination 重启后再次测试OK