使用 Debian 服务器作为NAT网关
系统
没什么好说的,非常喜欢CENTOS7,非常不习惯用 Debian。不过在装 Debian 的过程中遇到了些 特有的坑:
目地:使用DNSMASQ做DNS服务器,使用IPTABLES NAT 内外转发到外网,减少服务器计算压力!
DHCP 服务和 DNS 服务
网关开启DHCP服务,给局域网内的设备自动分发IP地址,这里我用的是非常流行的 dnsmasq,不仅可以作为DHCP服务器,还能作为DNS服务器。安装 dnsmasq:
sudo apt install dnsmasq
编辑 /etc/dnsmasq.conf
,添加如下配置:
conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig interface=tap_soft dhcp-range=tap_soft,192.168.7.50,192.168.7.200,12h dhcp-option=tap_soft,3,192.168.7.1
重启 dnsmasq 服务使之生效:
sudo systemctl restart dnsmasq
IP 转发和 NAT
光有IP地址还不够,作为网关,必须要能够转发来自局域网的所有数据。编辑 /etc/sysctl.conf
,将 net.ipv4.ip_forward
这一行的注释去掉:
net.ipv4.ip_forward=1
然后执行 sudo sysctl -f
使其生效。
安装iptables进行 NAT转发
这里仅需提及,您需要两个软件包才能使其正常工作。netfilter-persistent如果iptables-persistent未安装,则不执行任何操作,该命令应包含两个软件包:
1 #Install packages
2 sudo apt install -y iptables-persistent netfilter-persistent
3 #Start the service
4 sudo service netfilter-persistent start
同时,为了使局域网内的设备能够访问外网,还需要配置NAT规则:
sudo iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -j MASQUERADE 或者 iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -j SNAT --to 80.251.214.XXX(IP自己替换)
检查防火墙状态,并且关闭防火墙
ufw status verbose #查看防火墙状态
sudo ufw disable #禁用防火墙
sudo ufw enable #启用防火墙
备注:
启动 iptables命令是
modprobe ip_tables
禁用的命令很复杂!
必须要执行禁用防火墙,不然前面的工作白干!这里是重点!
这样你就可以完成整个内网转发流程了!