当前位置: 首页 > 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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Zookeeper-数据结构
  • 优化Cocos Creator 包体体积
  • IDEA启动Web项目总是提示端口占用
  • VsCode远程ssh连接失败:Could not establish connection to XXX
  • Vue3学习体验(一)
  • Reinforced Causal Explainer for GNN论文笔记
  • python基础语法 005 函数1-2 函数作用域
  • Linux - 基础开发工具(yum、vim、gcc、g++、make/Makefile、git)
  • 使用Go编写的持续下行测速脚本,快速消耗流量且不伤硬盘
  • 【排序 】
  • 多元输出表达(MOE)
  • 静态搜索iOS动态链接函数的调用位置
  • 神经网络识别数字图像案例
  • 昇思训练营打卡第二十四天(LSTM+CRF序列标注)
  • uniapp 小程序注册全局弹窗组件(无需引入,无需写标签)
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • AWS实战 - 利用IAM对S3做访问控制
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • iOS编译提示和导航提示
  • Laravel Telescope:优雅的应用调试工具
  • Linux CTF 逆向入门
  • mockjs让前端开发独立于后端
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • tweak 支持第三方库
  • 分布式熔断降级平台aegis
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 面试遇到的一些题
  • 区块链共识机制优缺点对比都是什么
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 移动端 h5开发相关内容总结(三)
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #70结构体案例1(导师,学生,成绩)
  • #Ubuntu(修改root信息)
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (20050108)又读《平凡的世界》
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (剑指Offer)面试题34:丑数
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (学习日记)2024.01.09
  • (一)认识微服务
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • ... 是什么 ?... 有什么用处?
  • .htaccess配置常用技巧
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Reactor简单使用教程
  • .net 按比例显示图片的缩略图
  • .Net 代码性能 - (1)
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • @DataRedisTest测试redis从未如此丝滑
  • @DependsOn:解析 Spring 中的依赖关系之艺术