mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
591 字
2 分钟
Ubuntu通过nat将网络转发给路由器
2024-12-15

因为个人需要,需要先通过主机获取网络,再通过网络转发,通过网线将网线共享给路由器。 下面是解决方法。 ps:事前声明,本配置环境为刚装完的Ubuntu,如果你的环境有需要保存的配置,建议先进行保存,避免被删除。

查看当前网络状态#

ip addr
# 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
# link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
# inet 127.0.0.1/8 scope host lo
# valid_lft forever preferred_lft forever
# inet6 ::1/128 scope host noprefixroute
# valid_lft forever preferred_lft forever
#2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
# link/ether 68:1d:ef:4a:41:4e brd ff:ff:ff:ff:ff:ff
# inet6 fe80::85cf:33e6:14a0:3af6/64 scope link noprefixroute
# valid_lft forever preferred_lft forever
#3: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
# link/ether 68:1d:ef:4a:41:4f brd ff:ff:ff:ff:ff:ff
# inet 192.168.0.148/24 brd 192.168.0.255 scope global dynamic noprefixroute enp3s0
# valid_lft 7094sec preferred_lft 7094sec
# inet6 fe80::8590:b5db:d80c:eae8/64 scope link noprefixroute
# valid_lft forever preferred_lft forever
#4: wlp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
# link/ether bc:2b:02:7c:27:a7 brd ff:ff:ff:ff:ff:ff
#5: enx5a5f0a205236: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
# link/ether 5a:5f:0a:20:52:36 brd ff:ff:ff:ff:ff:ff
# inet 192.168.9.107/24 brd 192.168.9.255 scope global dynamic noprefixroute enx5a5f0a205236
# valid_lft 3421sec preferred_lft 3421sec
# inet6 fe80::86cb:2037:bfdc:9300/64 scope link noprefixroute
# valid_lft forever preferred_lft forever

找到自己连接互联网和连接路由器的网络接口

网络配置#

1. 修改 Netplan 配置#

  1. 清除所有现有 Netplan 配置文件:

sudo rm -rf /etc/netplan/*.yaml 2. 创建一个新的基础配置文件: shell sudo nano /etc/netplan/01-netcfg.yaml 3. 添加以下内容,启用接口的 DHCP,为连接路由器的网卡配置静态 IP 地址: yaml network: version: 2 renderer: networkd ethernets: enp1s0: addresses: - 192.168.1.1/24 dhcp4: false gateway4: 192.168.1.254 nameservers: addresses: - 8.8.8.8 - 8.8.4.4 enx5a5f0a205236: dhcp4: true 4. 保存文件并退出,然后应用配置: shell sudo netplan apply ```#

2. 验证网络配置#

运行以下命令检查每个接口是否成功获取 IP 地址:

ip addr
  • 目标状态
    • 配置接口应通过 DHCP 获取 IP 地址。
    • 路由器接口应分配为静态地址。 运行以下命令,检查 enp1s0 是否分配了静态 IP 地址:

ip addr show enp1s0 输出应包含: plain text inet 192.168.1.1/24 scope global enp1s0 ```#

3. 配置路由器网络共享#

按照本人的网络结构,是由 enx5a5f0a205236 提供互联网连接,并通过 enp1s0 共享到路由器:

3.1 启用 IP 转发#

  1. 临时启用:

sudo sysctl -w net.ipv4.ip_forward=1 2. 永久启用: 编辑 **`/etc/sysctl.conf`** 文件: shell sudo nano /etc/sysctl.conf 确保以下行未被注释: plain text net.ipv4.ip_forward=1 3. 应用配置: shell sudo sysctl -p ```

3.2 配置 NAT 转发#

  1. 添加 NAT 转发规则:

sudo iptables -t nat -A POSTROUTING -o enx5a5f0a205236 -j MASQUERADE sudo iptables -A FORWARD -i enx5a5f0a205236 -o enp1s0 -m state —state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i enp1s0 -o enx5a5f0a205236 -j ACCEPT 2. 保存规则: shell sudo apt install iptables-persistent sudo netfilter-persistent save sudo netfilter-persistent reload ```#

4. 配置 DHCP 服务#

路由器的 WAN 需要通过 enp1s0 获取 IP 地址,这需要配置 DHCP 服务。

4.1 安装 DHCP 服务#

安装 isc-dhcp-server

sudo apt update
sudo apt install isc-dhcp-server

4.2 配置 DHCP#

编辑 /etc/dhcp/dhcpd.conf 文件:

sudo nano /etc/dhcp/dhcpd.conf

添加以下内容:

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
}

指定 DHCP 服务的接口:

sudo nano /etc/default/isc-dhcp-server

设置:

INTERFACESv4="enp1s0"

4.3 启动 DHCP 服务#

启动 DHCP 服务并检查状态:

sudo systemctl restart isc-dhcp-server
sudo systemctl status isc-dhcp-server

5. 验证网络共享#

  1. 检查 NAT 和 IP 转发是否生效

sudo iptables -t nat -L -v cat /proc/sys/net/ipv4/ip_forward ``` - 确保 NAT 规则已存在。 - cat /proc/sys/net/ipv4/ip_forward 应返回 1。 2. 在连接 enp1s0 的设备上测试网络连接: - 确保设备通过 DHCP 获取 IP 地址。 - 测试设备是否可以访问互联网。

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Ubuntu通过nat将网络转发给路由器
https://dreaife.tokyo/ubuntu-nat-routing/
作者
dreaife
发布于
2024-12-15
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

相关文章 智能推荐
1
阿里云配置docker+code-server实现线上编译器
cs-base 通过安装Docker和code-server,实现线上编译器的配置。步骤包括安装Docker、配置阿里云镜像、运行Nginx、安装和配置code-server,以及设置C/C++编译环境,最终成功运行测试代码。
2
ubuntu安装ohMyZsh及其组件
cs-base 在Ubuntu上安装ohMyZsh及其组件的步骤包括:首先安装zsh和git,然后通过wget安装ohMyZsh。接着,克隆powerlevel10k主题和所需插件,并更新.zshrc文件以应用主题和插件。最后,安装额外的插件如zsh-bat和you-should-use,并更新系统以确保一切正常工作。
3
关于pandas.to_datetime对不同时间格式使用时发生报错的情况
cs-base 在使用pandas的to_datetime函数时,遇到不同格式的日期导致报错。通过将format参数设置为'mixed',可以解决格式不一致的问题。示例代码展示了如何处理日期格式错误,并成功转换为datetime格式。
4
csapp 第一章 计算机系统漫游
cs-base 计算机系统由硬件和系统软件组成,通过程序的生命周期(创建、运行、输出、终止)来运行应用。信息由位和上下文构成,程序通过编译系统转化为可执行文件。处理器读取指令并执行简单操作,使用高速缓存提高性能。操作系统管理硬件,通过进程和虚拟内存提供资源的抽象,支持并发和并行执行。抽象是计算机科学的重要概念,虚拟机提供对整个计算机的抽象。
5
missing-semester-class01
cs-base 介绍了shell的基本特性和使用,包括如何运行程序、导航路径、文件权限、输入输出流的重定向,以及根用户的权限管理。提供了多个bash命令示例和课后习题以巩固学习内容。

目录