虚拟局域网中配置某台服务器作为网关的方案

查看本地网络

命令 ip a 查看本地网络接口信息

将需要转发流量的网卡名称,如 tun0 转发至 ens18记录到脚本的对应位置,并执行脚本

shell 复制代码
#!/bin/bash

# 检查是否以 root 权限运行
if [ "$EUID" -ne 0 ]; then
    echo "请使用 root 权限运行此脚本"
    exit 1
fi

# 设置网络转发
SYSCTL_CONF="/etc/sysctl.conf"
IP_FORWARD_LINE="net.ipv4.ip_forward = 1"

# 检查是否已存在该行,如果不存在则添加
if ! grep -q "$IP_FORWARD_LINE" "$SYSCTL_CONF"; then
    echo "$IP_FORWARD_LINE" >> "$SYSCTL_CONF"
    echo "已将 '$IP_FORWARD_LINE' 添加到 $SYSCTL_CONF"
else
    echo "$IP_FORWARD_LINE 已存在于 $SYSCTL_CONF"
fi

# 重新加载 sysctl 配置
sysctl -p

# 允许流量转发(需指定 tun0 和 ens18)
TUN_INTERFACE="tun0"  # 请根据需要修改
ENS_INTERFACE="ens18"  # 请根据需要修改

iptables -A FORWARD -i "$TUN_INTERFACE" -o "$ENS_INTERFACE" -j ACCEPT
iptables -A FORWARD -i "$ENS_INTERFACE" -o "$TUN_INTERFACE" -m state --state ESTABLISHED,RELATED -j ACCEPT

# 设置 NAT
iptables -t nat -A POSTROUTING -o "$ENS_INTERFACE" -j MASQUERADE

echo "网关设置完成!"

配置路由

配置完成后请在其他客户端上通过路由配置完成流量转发,如客户端A的ip为10.3.0.5,网关ip为10.3.0.48,想让客户端A中能够访问网关10.108.16.0网段的网络(必须是ens18网卡对应的网段),则以管理员方式打开cmd,输入以下命令:

shell 复制代码
route add 10.108.16.0 mask 255.255.255.0 10.3.0.48

还有一种方式是直接在openvpn access server后台中最后一行加入该配置(这种方式需要将历史生成的VPN配置重新生成一次,具体怎么实时生效我还不清楚,有需要可自行查阅相关资料,当然也希望能有结论后分享给我)

最终的效果图如下,未配置时无法ping通,配置后正常ping通并能够访问网络

相关推荐
Ruiery4 小时前
Linux 6.6内核 CPU 深度解析(七):调度器启动 — 从单核到多核,调度器分阶段点亮
linux·运维·服务器
50万马克的面包4 小时前
CSDN-栈队列数组-知识点整理
linux·运维·服务器
MicrosoftCloud5 小时前
用户权限 04|/etc/sudoers 安全配置:从最小授权到「别把 ALL 随便给人」
运维·安全·ubuntu·sudo·sudoers
꯭自꯭闭꯭6 小时前
达梦事物特性及MVCC
linux·运维·数据库
郑州光合科技余经理7 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
91刘仁德7 小时前
HTTP协议详解:从URL到HTTP服务器的完整实战
服务器·网络·笔记·网络协议·http
专业程序开发源7 小时前
springboot简历管理系统81389-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
专业程序开发源7 小时前
springboot社区养老系统44071-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·php·课程设计
亚川楼宇自控系统数据中心厂家7 小时前
实验室智能化管理系统|人环物智一体化管控平台
运维
zmsup9 小时前
Agent 上下文调优:结合 OpsArk 运维智能体,设计模型每一步真正需要的信息
运维·agent·上下文压缩·运维智能体·上下文调优