环境说明
操作系统:ubutun24.04
网卡数量:双网卡
需求说明:主网卡负责上网,副网卡SSH连接
情景模式
我这个服务器,有两个网卡,主网卡是家庭带宽(大内网),用来日常下载使用,第二个网卡是固定IP,IDC带宽10M
网卡配置:
network: # 网络配置的根节点
version: 2 # Netplan配置的版本号
renderer: networkd # 指定使用systemd-networkd作为网络管理服务
ethernets: # 以太网接口的配置
eno1: # 第一个以太网接口,名称为eno1
dhcp4: no # 不使用DHCP进行IPv4地址的自动分配
addresses: # 手动指定IPv4地址
- 192.168.1.2/24 # 为eno1接口分配的IP地址和子网掩码
routes: # 静态路由配置
- to: default # 默认路由(相当于to: 0.0.0.0/0)
via: 192.168.1.1 # 默认网关,流量通过此网关转发到外部网络
nameservers: # DNS服务器配置
addresses: # DNS服务器的地址列表
- 114.114.114.114 # 第一个DNS服务器地址
- 223.5.5.5 # 第二个DNS服务器地址
eno2: # 第二个以太网接口,名称为eno2
dhcp4: no # 不使用DHCP进行IPv4地址的自动分配
addresses: # 手动指定IPv4地址
- 122.228.228.59/28 # 为eno2接口分配的IP地址和子网掩码
routing-policy: # 路由策略配置
- from: 122.228.228.59/32 # 从指定的源地址发出的流量应用该路由策略
table: 2 # 路由表2,用于多路径路由选择
routes: # 静态路由配置
- to: 0.0.0.0/0 # 目标地址(默认路由)
via: 122.228.228.50 # 指定网关,流量通过此网关转发到外部网络
table: 2 # 使用路由表2
防火墙设置
iptables -t nat -R POSTROUTING 1 -o eno1 -j MASQUERADE
规则说明
iptables -t nat:指定这是对 NAT 表的操作。NAT(网络地址转换)用于在 IP 数据包的头部信息中修改网络地址信息。
-R POSTROUTING 1:表示替换 POSTROUTING 链中的第一个规则。POSTROUTING 链用于在数据包即将离开网络接口时修改它们。
-o eno1:指定规则应用于从 eno1 网络接口发出的数据包。
-j MASQUERADE:指示 iptables 使用 MASQUERADE 目标。MASQUERADE 会动态地伪装源 IP 地址,通常用于连接到动态 IP 的外部网络,比如互联网。
综上所述,这条命令将 NAT 表中的 POSTROUTING 链的第一个规则替换为:对从 eno1 接口发出的数据包进行源地址伪装(MASQUERADE)。这样做的目的是使这些数据包在到达目标时显示为来自 eno1 接口的 IP 地址。
最后保存规则
最后需要保存规则,防止重启失效
sudo apt-get install iptables-persistent
在安装过程中,它会提示你保存当前的 iptables 规则,选择 “Yes”。如果没有提示,可以手动运行
sudo netfilter-persistent save
确保服务在启动时加载规则
sudo systemctl enable netfilter-persistent