因为个人需要,需要先通过主机获取网络,再通过网络转发,通过网线将网线共享给路由器。
下面是解决方法。
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 配置
-
清除所有现有 Netplan 配置文件:
sudo rm -rf /etc/netplan/*.yaml -
创建一个新的基础配置文件:
sudo nano /etc/netplan/01-netcfg.yaml -
添加以下内容,启用接口的 DHCP,为连接路由器的网卡配置静态 IP 地址:
network:version: 2renderer: networkdethernets:enp1s0:addresses:- 192.168.1.1/24dhcp4: falsegateway4: 192.168.1.254nameservers:addresses:- 8.8.8.8- 8.8.4.4enx5a5f0a205236:dhcp4: true -
保存文件并退出,然后应用配置:
sudo netplan apply
2. 验证网络配置
运行以下命令检查每个接口是否成功获取 IP 地址:
ip addr- 目标状态:
-
配置接口应通过 DHCP 获取 IP 地址。
-
路由器接口应分配为静态地址。
运行以下命令,检查
enp1s0是否分配了静态 IP 地址:ip addr show enp1s0输出应包含:
inet 192.168.1.1/24 scope global enp1s0
-
3. 配置路由器网络共享
按照本人的网络结构,是由 enx5a5f0a205236 提供互联网连接,并通过 enp1s0 共享到路由器:
3.1 启用 IP 转发
-
临时启用:
sudo sysctl -w net.ipv4.ip_forward=1 -
永久启用: 编辑
/etc/sysctl.conf文件:sudo nano /etc/sysctl.conf确保以下行未被注释:
net.ipv4.ip_forward=1 -
应用配置:
sudo sysctl -p
3.2 配置 NAT 转发
-
添加 NAT 转发规则:
sudo iptables -t nat -A POSTROUTING -o enx5a5f0a205236 -j MASQUERADEsudo iptables -A FORWARD -i enx5a5f0a205236 -o enp1s0 -m state --state RELATED,ESTABLISHED -j ACCEPTsudo iptables -A FORWARD -i enp1s0 -o enx5a5f0a205236 -j ACCEPT -
保存规则:
sudo apt install iptables-persistentsudo netfilter-persistent savesudo netfilter-persistent reload
4. 配置 DHCP 服务
路由器的 WAN 需要通过 enp1s0 获取 IP 地址,这需要配置 DHCP 服务。
4.1 安装 DHCP 服务
安装 isc-dhcp-server:
sudo apt updatesudo apt install isc-dhcp-server4.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-serversudo systemctl status isc-dhcp-server5. 验证网络共享
-
检查 NAT 和 IP 转发是否生效:
sudo iptables -t nat -L -vcat /proc/sys/net/ipv4/ip_forward- 确保 NAT 规则已存在。
cat /proc/sys/net/ipv4/ip_forward应返回1。
-
在连接
enp1s0的设备上测试网络连接:- 确保设备通过 DHCP 获取 IP 地址。
- 测试设备是否可以访问互联网。
For personal use, I first obtain the network on the host, then forward it over the network, sharing the network with the router via an Ethernet cable.
Here is the solution.
P.S.: This configuration environment is a freshly installed Ubuntu. If your environment has configurations you need to preserve, please back them up first to avoid loss.
View current network status
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#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 foreverIdentify the interfaces connected to the Internet and to the router
Network Configuration
1. Modify Netplan configuration
-
Remove all existing Netplan configuration files:
sudo rm -rf /etc/netplan/*.yaml -
Create a new base configuration file:
sudo nano /etc/netplan/01-netcfg.yaml -
Add the following content to enable DHCP on the interfaces and configure a static IP address for the NIC connected to the router:
network:version: 2renderer: networkdethernets:enp1s0:addresses:- 192.168.1.1/24dhcp4: falsegateway4: 192.168.1.254nameservers:addresses:- 8.8.8.8- 8.8.4.4enx5a5f0a205236:dhcp4: true -
Save the file and exit, then apply the configuration:
sudo netplan apply
2. Validate network configuration
Run the following commands to check whether each interface has successfully obtained an IP address:
ip addr- Target state:
-
The configured interfaces should obtain IP addresses via DHCP.
-
The router-facing interface should be assigned a static address.
Run the following command to check whether
enp1s0has a static IP address:ip addr show enp1s0The output should include:
inet 192.168.1.1/24 scope global enp1s0
-
3. Configure router network sharing
According to my network layout, the Internet connection is provided by enx5a5f0a205236 and is shared to the router via enp1s0:
3.1 Enable IP forwarding
-
Temporarily enable:
sudo sysctl -w net.ipv4.ip_forward=1 -
Permanently enable: Edit the
/etc/sysctl.conffile:sudo nano /etc/sysctl.confEnsure the following line is not commented:
net.ipv4.ip_forward=1 -
Apply the configuration:
sudo sysctl -p
3.2 Configure NAT forwarding
-
Add NAT forwarding rules:
sudo iptables -t nat -A POSTROUTING -o enx5a5f0a205236 -j MASQUERADEsudo iptables -A FORWARD -i enx5a5f0a205236 -o enp1s0 -m state --state RELATED,ESTABLISHED -j ACCEPTsudo iptables -A FORWARD -i enp1s0 -o enx5a5f0a205236 -j ACCEPT -
Save the rules:
sudo apt install iptables-persistentsudo netfilter-persistent savesudo netfilter-persistent reload
4. Configure DHCP Service
The router’s WAN needs to obtain an IP address via enp1s0, which requires configuring a DHCP service.
4.1 Install DHCP Service
Install isc-dhcp-server:
sudo apt updatesudo apt install isc-dhcp-server4.2 Configure DHCP
Edit /etc/dhcp/dhcpd.conf file:
sudo nano /etc/dhcp/dhcpd.confAdd the following content:
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;}Specify the interface for the DHCP service:
sudo nano /etc/default/isc-dhcp-serverSet:
INTERFACESv4="enp1s0"4.3 Start DHCP Service
Start the DHCP service and check its status:
sudo systemctl restart isc-dhcp-serversudo systemctl status isc-dhcp-server5. Validate network sharing
-
Check NAT and IP forwarding are active:
sudo iptables -t nat -L -vcat /proc/sys/net/ipv4/ip_forward- Ensure the NAT rules exist.
cat /proc/sys/net/ipv4/ip_forwardshould return1.
-
Test network connectivity on devices connected to
enp1s0:- Ensure devices obtain IP addresses via DHCP.
- Test whether devices can access the Internet.
個人的な都合により、まずホストを介してネットワークを取得し、次にそのネットワークを介して転送し、LANケーブルを使ってルータへネットワークを共有します。
以下は解決方法です。
追記:この構成環境は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#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#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 の設定を変更
-
既存の Netplan 設定ファイルをすべて削除する:
sudo rm -rf /etc/netplan/*.yaml -
新しい基本設定ファイルを作成する:
sudo nano /etc/netplan/01-netcfg.yaml -
以下を追加して、インターフェースの DHCP を有効にし、ルータに接続する NIC に静的 IP アドレスを設定します:
network:version: 2renderer: networkdethernets:enp1s0:addresses:- 192.168.1.1/24dhcp4: falsegateway4: 192.168.1.254nameservers:addresses:- 8.8.8.8- 8.8.4.4enx5a5f0a205236:dhcp4: true -
ファイルを保存して退出し、設定を適用する:
sudo netplan apply
2. ネットワーク設定の検証
以下のコマンドを実行して、各インターフェースが正しく IP アドレスを取得しているかを確認します:
ip addr- 目標状態:
-
設定したインターフェースは DHCP で IP アドレスを取得すること。
-
ルータのインターフェースには静的アドレスが割り当てられていること。
以下のコマンドを実行して、
enp1s0に静的 IP アドレスが割り当てられているかを確認します:ip addr show enp1s0出力には以下が含まれるはずです:
inet 192.168.1.1/24 scope global enp1s0
-
3. ルータのネットワーク共有の設定
私のネットワーク構成では、インターネット接続は enx5a5f0a205236 によって提供され、enp1s0 を介してルータへ共有します:
3.1 IP 転送の有効化
-
一時的に有効化:
sudo sysctl -w net.ipv4.ip_forward=1 -
永続的に有効化: 編集するファイル
sudo nano /etc/sysctl.conf以下の行がコメントアウトされていないことを確認します:
net.ipv4.ip_forward=1 -
設定を適用:
sudo sysctl -p
3.2 NAT 転送の設定
-
NAT 転送ルールを追加:
sudo iptables -t nat -A POSTROUTING -o enx5a5f0a205236 -j MASQUERADEsudo iptables -A FORWARD -i enx5a5f0a205236 -o enp1s0 -m state --state RELATED,ESTABLISHED -j ACCEPTsudo iptables -A FORWARD -i enp1s0 -o enx5a5f0a205236 -j ACCEPT -
ルールを保存:
sudo apt install iptables-persistentsudo netfilter-persistent savesudo netfilter-persistent reload
4. DHCP サービスの設定
ルータの WAN は enp1s0 経由で IP アドレスを取得する必要があるため、DHCP サービスを設定します。
4.1 DHCP サービスのインストール
インストールする:
sudo apt updatesudo apt install isc-dhcp-server4.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-serversudo systemctl status isc-dhcp-server5. ネットワーク共有の検証
-
NAT と IP 転送が有効かどうかを確認:
sudo iptables -t nat -L -vcat /proc/sys/net/ipv4/ip_forward- NAT ルールが存在することを確認。
cat /proc/sys/net/ipv4/ip_forwardは1を返す必要があります。
-
enp1s0 に接続したデバイスでネットワーク接続をテストする:
- デバイスが DHCP で IP アドレスを取得していることを確認。
- デバイスがインターネットにアクセスできることを確認。
部分信息可能已经过时









