在实际生产环境中我们可能会遇到linux服务器只有内网而无法联网的情况,此时我们可以通过我们的笔记本电脑使服务器接入互联网。
前置条件:
Linux服务器
内网ip 192.168.2.20
笔记本电脑:
有线网卡设置静态ip 192.168.2.11
无线网卡:连接wifi或者热点网络
网络拓扑:
操作方法
第一部分:配置笔记本电脑(网关)
开启 Internet 连接共享 (ICS)
在 Windows 搜索栏中输入 “网络连接” 并打开它。
找到您连接到互联网的无线网卡
WLAN2
。右键点击它,选择 “属性”。
切换到 “共享” 选项卡。
勾选 “允许其他网络用户通过此计算机的 Internet 连接来连接”。
在 “家庭网络连接” 的下拉菜单中,选择您用于连接服务器的有线网卡
以太网 3
。点击 “确定”。系统可能会提示您,
以太网 3
的 IP 地址将被设置为192.168.137.1
。这是正常现象,但我们希望使用192.168.2.11
,所以需要下一步手动修改。
手动设置有线网卡的静态 IP(覆盖 ICS 的自动设置)
回到 “网络连接” 窗口。
右键点击您的有线网卡
以太网 3
,选择 “属性”。双击 “Internet 协议版本 4 (TCP/IPv4)”。
选择 “使用下面的 IP 地址”:
IP 地址:
192.168.2.11
(您期望的地址)子网掩码:
255.255.255.0
默认网关: (留空)
DNS 服务器: 可以留空,或者填写一个公共 DNS 如
114.114.114.114
。因为笔记本电脑本身可以通过 WLAN 解析 DNS。点击 “确定”。
配置 Windows 防火墙(允许转发)
通常,开启 ICS 后 Windows 防火墙会自动添加必要的规则允许转发。如果后续测试不通,请确保防火墙没有阻止内网网卡的通信。
第二部分:配置Linux内网服务器
设置静态 IP 地址
在您的服务器上(假设是 Linux),编辑网络配置文件(例如
/etc/netplan/01-netcfg.yaml
或/etc/sysconfig/network-scripts/ifcfg-eth1
)。确保配置如下:
IP 地址:
192.168.2.20
子网掩码:
255.255.255.0
(或 CIDR 表示法/24
)网关:
192.168.2.11
(这是最关键的一步,指向笔记本电脑的有线网卡 IP)DNS:
192.168.2.11
(推荐,这样所有 DNS 请求都经由笔记本转发) 或者直接设置一个公共 DNS 如8.8.8.8
。
应用配置并重启网络
对于 netplan (Ubuntu):
sudo netplan apply
对于 systemd-networkd (CentOS/Rocky):
sudo systemctl restart systemd-networkd
第二部分(拓展):内网服务器为windows系统
参考第一部分2手动配置连接网卡的静态ip地址
确保配置如下:
IP 地址:
192.168.2.20
子网掩码:
255.255.255.0
(或 CIDR 表示法/24
)网关:
192.168.2.11
(这是最关键的一步,指向笔记本电脑的有线网卡 IP)DNS:
192.168.2.11
(推荐,这样所有 DNS 请求都经由笔记本转发) 或者直接设置一个公共 DNS 如8.8.8.8
。
第三部分:测试验证
在服务器上测试:
测试网关连通性:
ping 192.168.2.11
。这必须通,否则检查网线、IP设置、防火墙。测试互联网连通性:
ping 8.8.8.8
。如果能通,说明 NAT 转发工作正常。测试 DNS 解析:
ping www.baidu.com
。如果能通,说明 DNS 配置正确。如果8.8.8.8
能通但域名不通,检查服务器的 DNS 设置。
其他情况:
如果笔记本电脑也为linux系统需要开启iptables的转发并设置相应规则
# 启用 IP 转发
sysctl -w net.ipv4.ip_forward=1
# 设置 iptables NAT 规则
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# (注意:请将 wlan0 和 eth0 替换为您实际的无线和有线网卡名称)