Image

知识库 → 在 Linux Debian 中设置 NAT(本地网络上的 Internet)

[虚拟服务器]
出版日期: 11.03.2024

为了将服务器用作路由器,我们需要配置 NAT。 在本指南中,服务器有 2 个物理端口:

  • enp3s0 - 互联网 (192.168.1.12)
  • enp1s0 - 本地网络 (100.100.100.1)

1.enp1s0配置

more /etc/network/interfaces
auto enp1s0
    iface enp1s0 inet static
    address 100.100.100.1
    netmask 255.255.255.0

2.NAT设置

apt install iptables
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
iptables -A FORWARD -i enp1s0 -j ACCEPT

2.1 配置本地网关作为DNS服务器

在我们的例子中,我们使用转发到 DNS 服务器 8.8.8.8

iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to 8.8.8.8:53
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to 8.8.8.8:53
iptables -t nat -A POSTROUTING -j MASQUERADE

2.2 保存模块设置

nano /etc/modules
iptable_nat

2.3 保存流量设置

nano /etc/sysctl.conf
net.ipv4.ip_forward=1

2.4 保存 iptables 设置

apt install iptables-persistent
iptables-save > /etc/iptables/rules.v4

3.检查工作

由于我们的一个端口上有互联网,第二个端口上有本地网络,因此连接到本地网络端口的所有设备都应该能够访问互联网。 有时,网关本身未配置为 DNS 服务器,而正确的检查将通过 ping 外部 IP 地址进行。

例如:

ping 8.8.8.8

Обмен пакетами с 8.8.8.8 по с 32 байтами данных:
Ответ от 8.8.8.8: число байт=32 время=23мс TTL=59
Ответ от 8.8.8.8: число байт=32 время=23мс TTL=59

或者

ping 1.1.1.1

Обмен пакетами с 1.1.1.1 по с 32 байтами данных:
Ответ от 1.1.1.1: число байт=32 время=4мс TTL=57
Ответ от 1.1.1.1: число байт=32 время=4мс TTL=57

正如我们所看到的,一切正常。 现在我们的服务器充当路由器。





暂时没有评论