将 linux 服务器作为本地外网网关,方便利用 Linux 生态中的各种网络工具,对流量进行自定义、精细化管理…
环境说明
拨号主机:CentOS 7.9, Linux Kernel 5.4.257
拨号软件: rp-pppoe-3.11-7.el7.x86_64
初始化
1、升级系统到新的稳定内核, lt 长期支持版本、ml 当前主线版本
# CentOS 7.9 默认 Kernel 为 3.10
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
# 载入 elrepo-kernel 元数据
yum --enablerepo=elrepo-kernel repolist
# 安装长期支持的内核版本
yum --enablerepo=elrepo-kernel install kernel-lt.x86_64 -y
# 查看内核启动顺序
awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
# 设置默认开机从新内核启动
grub2-set-default 0
2、install 拨号软件
yum install rp-pppoe-3.11-7.el7.x86_64 -y
拨号设置
1、执行 pppoe-setup 初始化拨号设置,如下图所示
## PPPOE 拨号
1、开始拨号 ifup ppp0 ,断开拨号 ifdown ppp0
pppoe-start /etc/sysconfig/network-scripts/ifcfg-ppp0
pppoe-stop # 停止拨号
pppoe-status # 查看状态
2、查看拨号后的路由表信息、及接口 ppp0 状态
# 拨号后会自动更新本机路由,默认将所有流量通过本地接口 ppp0 发出,且该出口的下一跳 ip 地址为 100.78.128.1
route -n
#> Kernel IP routing table
#> Destination Gateway Genmask Flags Metric Ref Use Iface
#> 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
#> 100.78.128.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
#> 192.168.21.0 0.0.0.0 255.255.255.0 U 101 0 0 ens9
#> 192.168.31.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
ifconfig ppp0
#> ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1492
#> inet 100.78.185.33 netmask 255.255.255.255 destination 100.78.128.1
#> ppp txqueuelen 3 (Point-to-Point Protocol)
#> RX packets 13973 bytes 16487388 (15.7 MiB)
#> RX errors 0 dropped 0 overruns 0 frame 0
#> TX packets 7520 bytes 1150614 (1.0 MiB)
#> TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
配置 SNAT
1、配置拨号主机作为外网网关
# 启用转发
sysctl -w net.ipv4.conf.all.forwarding=1
# 允许网段 192.168.31.0/24 的终端通过拨号主机转发
iptables -I FORWARD -t filter -s 192.168.31.0/24 -j ACCEPT
# 将数据包源地址转换为接口 ppp0 的 ip 地址(SNAT, 共享 ip 上网)
iptables -A POSTROUTING -t nat -s 192.168.31.0/24 -o ppp0 -j MASQUERADE
# 查看 snat 规则
iptables -nvL POSTROUTING -t nat |grep ppp0
#> pkts bytes target prot opt in out source destination
#> 800 78869 MASQUERADE all -- * ppp0 192.168.31.0/24 0.0.0.0/0
2、查看连接信息,测试主机 31.218 通过本机访问外网
yum install conntrack-tools -y
conntrack -L |grep -i 31.218 |grep -i estab
conntrack v1.4.4 (conntrack-tools): 53 flow entries have been shown.
tcp 6 431988 ESTABLISHED src=192.168.31.218 dst=58.63.233.98 sport=50104 dport=443 src=58.63.233.98 dst=100.78.185.33 sport=443 dport=50104 [ASSURED] mark=0 secctx=system_u:object_r:unlabeled_t:s0 use=1
码字不易,若觉得本文对你有用,欢迎点赞 👍、分享 🚀 ,相关技术热点时时看🔥🔥🔥…