当前位置: 首页 > news >正文

通过 PPPOE 将 linux 服务器作为本地局域网 IPv4 外网网关

将 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-ppp0pppoe-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 eth0ifconfig 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 -yconntrack -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

码字不易,若觉得本文对你有用,欢迎点赞 👍、分享 🚀 ,相关技术热点时时看🔥🔥🔥​​​…

http://www.lryc.cn/news/400294.html

相关文章:

  • gin源码分析
  • 数学建模入门
  • 【学习笔记】无人机(UAV)在3GPP系统中的增强支持(十二)-无人机群在物流中的应用
  • 同三维T80006EH2-4K30编码器视频使用操作说明书:高清HDMI编码器,高清SDI编码器,4K超清HDMI编码器,双路4K超高清编码器
  • DHCP原理及配置
  • 异步日志:性能优化的金钥匙
  • matlab仿真 模拟调制(上)
  • 【数据结构】--- 堆的应用
  • 0基础学会在亚马逊云科技AWS上利用SageMaker、PEFT和LoRA高效微调AI大语言模型(含具体教程和代码)
  • 护网HW面试——redis利用方式即复现
  • C++ //练习 15.8 给出静态类型和动态类型的定义。
  • 阿里云ECS服务器安装jdk并运行jar包,访问成功详解
  • Windows系统上使用npm来安装和配置Yarn,在VSCode中使用
  • Unity ColorSpace 之 【颜色空间】相关说明,以及【Linear】颜色校正 【Gamma】的简单整理
  • JavaScript的学习(二)
  • 【接口自动化_06课_Pytest+Excel+Allure完整框架集成】
  • Profibus协议转Profinet协议网关模块连接智能电表通讯案例
  • 【学习笔记】无人机(UAV)在3GPP系统中的增强支持(九)-无人机服务区分离
  • acrobat 中 PDF 复制时不能精确选中所选内容所在行的一种解决方法
  • 安卓学习中遇到的问题【bug】
  • 【日常记录】【CSS】display:inline 的样式截断
  • 数据库系统安全
  • Qt MV架构-代理模型
  • WebSocket实现群聊功能、房间隔离
  • 顶顶通呼叫中心中间件实现随时启动和停止质检(mod_cti基于FreeSWITCH)
  • 基于conda包的环境创建、激活、管理与删除
  • 处理线程安全的列表CopyOnWriteArrayList 和Collections.synchronizedList
  • 技术成神之路:设计模式(六)策略模式
  • 华为OD机考题(HJ90 合法IP)
  • 值得关注的数据资产入表