使用 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

禁用的命令很复杂!


必须要执行禁用防火墙,不然前面的工作白干!这里是重点!

这样你就可以完成整个内网转发流程了!

Powered By Z-BlogPHP 1.5.2 Zero

175.es

. theme by Plat together