ubuntu下单网卡NAT

本文介绍如何在只有一个BRAS号的情况下,通过配置Ubuntu服务器作为NAT网关,实现局域网内多台电脑共享上网,无需为各软件单独设置代理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最适用场合
    本方法比较适合以下情况的使用者:
    环境: 多台电脑在一个局域网中(如实验室中),但是只有一个BRAS号,所有电脑都想要上网。
    要求: 你不想给N多软件设置代理:给FireFox设置代理,给QQ设置代理,
                                    给Fetion设置代理,迅雷、Pidgin,等等(设置这多累死人)
           因为有些软件没办法设置代理(无此功能),难道每台电脑必须直连Internet?
    一个更具体的应用场景:
    10.3.22.1   是你们实验室的网关,
    10.3.22.117 是你们实验室的一台服务器,终年开着,Ubuntu系统,BRAS一直连着,愿意为别人共享BRAS连接
    10.3.22.120 是你的电脑,你没有BRAS了,想上网,又不想给N多软件设置代理,有些软件还没办法设置代理,
                你就想你的电脑可以上网,而且要就好像直连Internet一样。
    你的要求可以过分了吗?可以满足吗?可以!!

设置
    ●.服务器上的配置
    也就是10.3.22.117上的配置。

    在/etc/network/interfaces 中添加
    auto eth0
    iface eth0 inet static
               address 10.3.22.117
               netmask 255.255.255.0
               broadcast 10.3.22.255
               network 10.3.22.0

    将/etc/sysctl.conf 中
    #net.ipv4.ip_forward=1
    行,改成
    net.ipv4.ip_forward=1

    在/etc/rc.local 中添加
    route add default gw 10.3.22.1
    /sbin/iptables -P FORWARD ACCEPT
    /sbin/iptables --table nat -A POSTROUTING -o ppp0 -j MASQUERADE

    在/etc/resolv.conf 中添加(设202.119.24.18是DNS服务器):
    nameserver 202.119.24.18

    配置完毕,重启服务器,并拨BRAS。(配置中用到的IP请参看本文前面的场景假设)
    如果你不想重启服务器也可以,或者如果重启之后有其他异常,请参看(需要BRAS的b)

http://ubuntuforums.org/showthread.php?t=713874

    ●.客户机上的配置
    也就是10.3.22.120上的配置。
    Ubunut下

    在/etc/rc.local 中添加
    GATEWAY=10.3.22.1
    route add -net 10.0.0.0 netmask 255.0.0.0 gw $GATEWAY
    route add -net 58.192.112.0 netmask 255.255.240.0 gw $GATEWAY
    route add -net 202.119.144.0 netmask 255.255.240.0 gw $GATEWAY
    route add -net 121.229.0.0 netmask 255.255.0.0 gw $GATEWAY
    route add -net 172.16.0.0 netmask 255.240.0.0 gw $GATEWAY
    route add -net 121.248.48.0 netmask 255.255.240.0 gw $GATEWAY
    route add -net 121.248.0.0  netmask 255.255.224.0 gw $GATEWAY
    route add -net 211.65.32.0 netmask 255.255.224.0 gw $GATEWAY
    route add -net 211.65.232.0 netmask 255.255.252.0 gw $GATEWAY
    route add -net 202.119.0.0 netmask 255.255.224.0 gw $GATEWAY
    route add -net 202.119.24.55 netmask 255.255.255.255 gw $GATEWAY
    route add default gw 10.3.22.117

    在/etc/resolv.conf 中添加(设202.119.24.18是DNS服务器):
    nameserver 202.119.24.18
    在终端中:
    sudo route add default gw 10.3.22.117

    Windows下
    双击“本地连接” -> 属性 -> Internet协议(TCP/IP) -> 默认网关改成 10.3.22.117

    大功告成,现在测试下,不拨BRAS时
    ping www.baidu.com
    看看是否通的?
    这时,你的电脑就好像直连Internet一样在共享10.3.22.117提供的互联网连接。
    浏览器,QQ,飞信,迅雷,Pidgin都不需要设代理就直接可以用!
    想上国外网?只要在浏览器里设下代理服务器就OK了!

原理
    我们这里用到了NAT(网络地址转换),10.3.22.*都可以通过10.3.22.117上网,10.3.22.117就是一台NAT网关。
    10.3.22.120所有的数据包都发给了10.3.22.117,而10.3.22.117把这些IP数据包 转换地址之后发给互联网上的目的地址,
    目的地址返回的数据包同样经过IP地址转换后回发给了10.3.22.120,
    所以10.3.22.120感觉好像自己直连互联网一样。
    10.3.22.*也可以通过10.3.22.117上网,设置和原理都一样。
 
 
 
Ubuntu局域网单网卡Nat共享上网 1、设置好主机的上网,下面的例子供参考:
代码:
IP地址 192.168.1.250 网关 192.168.1.1 DNS 61.128.114.166
2、进入终端,输入命令 sudo su 进入管理员模式; 3、接着输入命令,开启路由功能:
代码:
echo "1">/proc/sys/net/ipv4/ip_forward
4、接着依次输入下列命令:
代码:
sudo iptables -F sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
这样主机就设好了,如果想自动运行,可以如下操作: 1)在文件 /etc/sysctl.conf 最后加上一行 net.ipv4.ip_forward = 1 2)在文件 /etc/rc.local 里加入下面的几行(注意,加在 exit 0 的前面):
代码:
sudo iptables -F sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
设好以后,重新启动一下计算机; 5、客户机设置好DNS,网关为主机的IP地址,下面的例子供参考:
代码:
IP地址 192.168.1.78 网关 192.168.1.250 DNS 61.128.114.166
重启后,客户机就可以直接上网、上QQ了;
### 如何在 Ubuntu 上设置 NAT 网卡 #### 1. 检查虚拟机网络适配器配置 确保虚拟机的网络适配器已设置为 NAT 模式。如果使用的是 VirtualBox,则可以在虚拟机设置中的“网络”选项下选择 NAT 模式[^2];如果是 VMware,则需确认网络适配器被设为 NAT 并验证 VMnet8 的配置是否正确[^4]。 #### 2. 查看当前网络接口状态 通过以下命令查看当前可用的网络接口及其状态: ```bash ip address ``` 这一步可以帮助识别 NAT 网络接口(通常命名为 `enp0s3` 或类似的名称)。此操作有助于后续配置过程。 #### 3. 编辑网络配置文件 对于基于 Netplan 的现代 Ubuntu 版本(如 Ubuntu 20.04 和更高版本),可以通过修改 `/etc/netplan/*.yaml` 文件来完成静态 IP 地址或其他网络参数的设定。以下是具体步骤: - 打开默认的 Netplan 配置文件,路径通常是 `/etc/netplan/01-netcfg.yaml` 或类似命名。 - 使用文本编辑器(如 nano)对其进行编辑: ```bash sudo nano /etc/netplan/01-netcfg.yaml ``` - 添加或调整如下内容以匹配 NAT 接口的需求: ```yaml network: version: 2 renderer: networkd ethernets: enp0s3: # 替换为你实际的 NAT 网卡名 dhcp4: no addresses: - 192.168.56.101/24 # 设置固定的 IPv4 地址 gateway4: 192.168.56.1 # 虚拟路由器网关地址 nameservers: addresses: - 8.8.8.8 # Google 公共 DNS - 8.8.4.4 ``` **注意**: 如果不确定具体的子网掩码或者网关信息,请参考宿主机上的虚拟网络编辑器设置[^5]。 - 应用新的网络配置并重新加载服务: ```bash sudo netplan apply ``` #### 4. 启动和测试网络功能 执行下面这些指令来检验 NAT 网卡的工作状况以及互联网连通性: ```bash ping www.google.com ``` 如果能够成功 ping 到外部网站则表明 NAT 已经正常工作[^1]。 另外还可以尝试访问其他在线资源进一步验证连接稳定性。 --- #### 附录:高级场景下的额外处理方法 当遇到更复杂的环境比如多张网卡存在时可能还需要考虑启用 iptables 来实现 SNAT 功能以便让内部局域网也能共享单一公网出口地址。例如添加如下规则到防火墙策略中去支持这种需求[^3]: ```bash sudo iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE sudo iptables-save > /etc/iptables/rules.v4 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值