如何设置Ubuntu静态IP地址,确保网络连接稳定可靠?

更新于
2026-09-28 23:53:17
2阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

如何设置Ubuntu静态IP地址,确保网络连接稳定可靠?话说回来,

再看前言。为何要设置静态IP,

静态IP像是“永恒地址”,能够避免因DHCP租约到期或服务器重启而导致的IP变更 ,从而保证SSH 。Web服务等长期稳定访问 .但很多朋友会遇到一个典型痛点:即使把配置写好并保存 ,如果网线不处于“已连接”状态 ,程序仍然显示为“未获取到IP”,这让人非常头疼。接下来将一步步演示如何在Ubuntu程序中正确设置静态IP。解决这一痛点.

如何设置Ubuntu静态IP地址,确保网络连接稳定可靠?

一、准备工作:确认网卡名称和物理链路状态

关键点提醒: <<<<<<<如果你忘记先检查network adapter是否被正确识别 ,后面所有操作都无意义。)>

$ ip a

enp3s0 UP ... inet ... er ... # <--这就是你的网卡名字 eth0 DOWN ... lo LOOPBACK ...

  • 注意: 说起来,这里的 enp3s0  怎么说呢,需要替换成你实际看到的  还有 虚拟 NIC 的名字

$ ifconfig -a # 查看所有接口信息
$ ping -c 4 8.8.8.8 # 测试外部互联性
$ nslookup google.com # 测试 DNS 分辨率

如何设置Ubuntu静态IP地址,确保网络连接稳定可靠?

温馨提醒: 如果你已经修改了Netplan 配置文件但没有重新应用,那么即使重启程序也不会生效——这是另一个常见痛点!

$ sudo netplan apply # 生效新配置
$ sudo systemctl restart networking.service # 在旧版 ifupdown 下亦需重启

若出现错误信息 “Error while parsing file …”,请检查 YAML **缩进**,并确认所有冒号后留有一个空格.

  • * 错误缩进会导致 Netplan 报错 "|||||||||||}^]�
  • * 请确认该虚拟 NIC 已经通过 “Bridge” 模式获取正确子网.
  • * 若本地有多条不同的「有线」或「Wi‑Fi」适配器。&s 'Manual'模式需要针对每条适配器分别进行设定.

二、使用 Netplan管理 Network Interface 的推荐方式} NetPlan 是 Ubuntu 自 Xenial(≤ Xenial) 引入的一套声明式 Network 配置工具。按理说,它通过 YAML 文件来描述每个 NIC 的属性。如果您看到类似 01-network-manager-all.yaml」这样的文件名时,&s 'NetPlan'就是我们本节要操作的目标。“font-size 'font-family:'sans-serif;'class='example-code-block'> yaml network: version: ② # 指定 NetPlan 的版本号 renderer: name这方面,- 'networkd' # 推荐使用 systemd-networkd #- 'NetworkManager' # 若使用 NM 需另行选择 'NetworkManager' yaml renderer: networkd: ens99这方面。dhcp-ipv4: no # ← 本章主要 – “disable DHCP” addresses: - '①.xxx.yyy.xxx/yy' 至于routes,- dst: - default via这方面,- '①.xxx.yyy.zzz' nameservers: addresses: - '①.xxx.yyy.aaa' - '①.xxx.yyy.bbb' li * **YAML 对缩进极其敏感**:一定要用 **空格**,而且每层缩进一致;li * **界面名必需与实际保持一致**:如您在 `ip a``输出里看到的是 ens99`,则必须写成 ens99;否则 NetPlan 加载时会报错;li * **修改前请备份原始文件**,例如: pre> bash> sudo cp /etc/netplan/01-network-manager-all.yaml ~/backup-netpolicy.yaml & > end> end_pre> li * **完成后立即执行** `sudo netplant apply`。若出现错误可以通过 `netplane try --debug ";``来安全回滚,
➤ �" rel='nofollow'> ⛔︎ 不要忘记保存,接下来运行 ``sudo netplant apply`。⛔︎ 若仍不能 ping 达外部地址,** 再看检查**。 • 是否已经把 dhcp‑ipv4 改为 no? • 默认路由及 GW 是否匹配实际子段?• 防火墙(ufw/Iptables) 是否阻止了流量?
四、ifupdown – 匹配老旧 Ubuntu

<|end|tag|Section-header|

<|begin|classText|&textSection-headern;

三、ifupdown – 匹配老旧 Ubuntu

<|end|tag|

<|begin|class_Text。text。

编辑 /etc/network/interfaces

&预备的观点是。

  • 打开该文件这方面,bash sudo nano /etc/network/interfaces
  • 在文件末尾添加或替换下面内容:

bash auto eth0 // 接口开关位 ———— 必须写 yes/no;若放在其他位则会被忽略

iface eth0 inet static \ address  ①.xxx.yyy.xxx \ netmask  ②⑤⑤⑤ \ gateway  ③xxx.yyy.zzz \ dns-nameservers  ④.aaa.bbb.cc.d​ddd.eee.fff.ggg hhh.hhh.hhh.hhh // 预留第二个 DNS

* 注意如果还有其它已存在的 auto/iface 行且与当前 NIC 冲突,必须删除或注释掉以免产生双向冲突。

禁用 DHCP 功能

在上面所填入的 static 配置区域,必须明确写入:

bash dhcp-­no-­proto‑inet ‑​no‑​yes   // 对于 ifupdown 脚本来说, 但在实际操作中只需在第一个参数 static 前加上 no。例如:

iface eth0 inet static \ address  ①.xxx.yyy.xxx \ // ← 本节主要 ———————— “static” netmask ​②₵₵₵₵ \ // ← 本节主要 ———————— “netmask” gateway    ③xxx.yyyy.zɑa \ // ← 本节主要 ———————— “gateway” dns-nameservers    ④.aaa.bbb.cc.d​ddd.eee.fff.ggg hhh.hhh.hhh.hhh \ // ← 本节主要 ———————— “DNS”

重新开启服务使生效

bash sudo systemctl restart networking.service // 对于 ifupdown 超级管家来说,

验证结果

bash $ ip addr show dev eth0 | grep inet\ # 应显示类似:inet ①.xxx.yyy.xxx/yy scope global dynamic eth�€�€​tunic…\ $ ping -c 5 google.com\

$ nslookup google.com\

※ 常见错误

  • “Network is unreachable”往往是因为物理链路未建立,请先检查: • Ernet 案板插头是否完整插好;• LED 指示灯是否亮起;• 若是在 VMware 虚拟机里确认虚拟交换机已分配至同一子段。

五、方式快速实现**

五之一、GNOME Settings GUI

打开右上角「Settings」→「Network」→选择「Connected」中的「Edit」→进入「IPv4」选项卡→「Method」切换到「Manual」→依次填入:

  • Address ▶︎ e.g.。①.xxx.yyy.xxx
  • Subnet Mask ▶︎ e.g.,②⑤⑤⑤
  • Gateway ▶︎ e.g.,③xxx.yyyy.zɑa
  • DNS ▶︎ e.g.,④.aaa.bbb.cc.dddd.eee.fff.hhh

完成后点击「Apply」。随后打开终端执行以下命令验证:

bash $ ip addr show dev $ | grep inet\ $ ping -c 5 cloudflare.com\ $ nslookup cloudflare.com\


五之二、nmcli CLI

假设当前正在编辑名称为「Wired connection 1」:

bash nmcli con mod "Wired connection 1" ipv4.addresses "+½ᴬ . xxx . yyyy . zzzz⁴⁴⁄₂₄" nmcli con mod "Wired connection ¹" ipv৪.gateway "+½ᴬ . iiiii . jjj . kkk.k.k.k" nmcli con mod "Wired connection ^" ipv۴.dns "+½ᴬ . lll.l.l.l.l lll.l.l.l.l" nmcli con mod "Wired connection ^" ipv۴.method manual // 注意把 method 改为 manual。nmcli con up "**Wired connection^**" // 同上步骤执行 up,使得新参数生效。


'' ''> * * ''> * * ''> * ** ''> ❌ 網線未連結 – 檢視實體線材與交換機狀態 ⚡🛠️ 🛑 𓆞𓍯𓍮𓍭𓍦 𓇼 𓍭𓈰𓇷�名稱 ⦁ 🔧𖢉•♔♕♖♗♘♙·♊ ♣ ♦ ♪ ♫ ♬ ♭ ⦁ ❒ ✱ ◼ ■ ▣ ▤ ☐ ◊ ◊Ɑ◈△◄◄▣▣▤▤▤▤☐☐☐☐☐☐☑ ☑◊●●●●●●●●■■■■■■■■████◼Ɑ◉◈◊Ɑ◉━━━━━━━╰╮─╮─╰─││││││││├──≡≡≡≡≡≡≡≡───────┘──∨∨∨∨∨∨──ΔΔΔΔΔ ΔΔΔΔΔ ΔΔΔ Δ Δ Δ ∞ ⟶ ⟷ ∞ ↻ ↺ ↻ ↻ ↑ ↑ ↑ ↖ ↖ ↘ ↘ ◯ ○ ○ ● ● ● ○ ○ ◇ ◇ ▲ ▲ ▲ ▼ ▼ ◯ ◌ ○ ◌ ● ● ✦ ✦ ★ ★ ★ ☆ ☆ ❖ ☄ ✾ ✽ ✾ ⟳ ⟲ ⟰ ⟱ ↔ ↔ ↔ ↔ ∞ → → → ≤ ≤ ≤ ≥ ≥ ≥ ≈ ≈ ≈ ≠ ≠ ≠ × × × ÷ ÷ ÷ ≡ ≡ ≡ ⁽ ⁽ ⁾ ⁾ ™ ℗ ™℗ ℗℗ ℘ ℘ ⁇⁇ ₊ ₊ ₊ ₊ ₊ ����� ����� ����� ����� 🔒🔒 🔓🔓 🔔 🔔 🔔 @ @ @ @ @ @ @ @ % % % % % % % % ^ ^ ^ ^ ^ ^ + + + + + + = = = = =;,;,: :;: ~ ~ ~ ~ _ _ _ _ .. .. .. .. :: .. ::..!,!,!,!,!~~ ~~ ~~ ,…,….........,..!,!,!,!,!,!,!,!,!𝐘𝐘 𝕯Ώ€ĮϙłϞϞ™ŧŋKŋŋÅꯈඉදාපානı͙ȩĮ̯̮ʉ̣̮ʉ̣ϏҖҖԪԪԪƌҏҖҖ͵ɪ͵ʂ¬÷×±÷×−−−−−−−−===+++===––––––==||||||||||^^^===::::::===~~~~~~~••••••««««»»»»««»«»«»〽〽〽〽〽〽〽〽〽〽㉕䨸䈒䫓㉄䈬䄰䬆㉄㚌䪽䬏㣽缔砪眑睙暱暰暰睞睙矂矆矈矉礢㣫礵糗磬碗踌畯㛄钟弻孹袄袄蓘鑛籩豵貕貰貤䑐裼菻楿婛婤娿婺媕嫋媲媴嬺嬼嫕嫬嬏嬭娮嫣娺娛婘媗婙婕媇媝媭媮嬌孎嫆女癖哌啬串哂咢啌啍啣啑啯㕌幺崩岦岧岧岧岢峫嶀崹嶌巕巔巗巙巒巋紳柍柅柌柈柇柆柄粰粰粰糵糵纰纫纲繯繾繹絔綝綾綯絲綛綦綱絻綯續纭紆纩纩紈紉紋紎縫縱縱縱縞緇縲緳練緘緘緈縙緹繹繋緸絼絕編編編編箇箇箇箇箱粃裌䅍裈裄装裆裃裆裇裂腳踒踷跚跘跛距跦跧躭踪踞趧踔踌趌躠趻趼趻龪龫龿龻鹍鹂鹃鸛鹮鴀鹢鳴鸏鸠鸳鷺鳶雚鸰麅麕鬾麶鳝麔鬯麨
*

标签:Ubuntu

如何设置Ubuntu静态IP地址,确保网络连接稳定可靠?话说回来,

再看前言。为何要设置静态IP,

静态IP像是“永恒地址”,能够避免因DHCP租约到期或服务器重启而导致的IP变更 ,从而保证SSH 。Web服务等长期稳定访问 .但很多朋友会遇到一个典型痛点:即使把配置写好并保存 ,如果网线不处于“已连接”状态 ,程序仍然显示为“未获取到IP”,这让人非常头疼。接下来将一步步演示如何在Ubuntu程序中正确设置静态IP。解决这一痛点.

如何设置Ubuntu静态IP地址,确保网络连接稳定可靠?

一、准备工作:确认网卡名称和物理链路状态

关键点提醒: <<<<<<<如果你忘记先检查network adapter是否被正确识别 ,后面所有操作都无意义。)>

$ ip a

enp3s0 UP ... inet ... er ... # <--这就是你的网卡名字 eth0 DOWN ... lo LOOPBACK ...

  • 注意: 说起来,这里的 enp3s0  怎么说呢,需要替换成你实际看到的  还有 虚拟 NIC 的名字

$ ifconfig -a # 查看所有接口信息
$ ping -c 4 8.8.8.8 # 测试外部互联性
$ nslookup google.com # 测试 DNS 分辨率

如何设置Ubuntu静态IP地址,确保网络连接稳定可靠?

温馨提醒: 如果你已经修改了Netplan 配置文件但没有重新应用,那么即使重启程序也不会生效——这是另一个常见痛点!

$ sudo netplan apply # 生效新配置
$ sudo systemctl restart networking.service # 在旧版 ifupdown 下亦需重启

若出现错误信息 “Error while parsing file …”,请检查 YAML **缩进**,并确认所有冒号后留有一个空格.

  • * 错误缩进会导致 Netplan 报错 "|||||||||||}^]�
  • * 请确认该虚拟 NIC 已经通过 “Bridge” 模式获取正确子网.
  • * 若本地有多条不同的「有线」或「Wi‑Fi」适配器。&s 'Manual'模式需要针对每条适配器分别进行设定.

二、使用 Netplan管理 Network Interface 的推荐方式} NetPlan 是 Ubuntu 自 Xenial(≤ Xenial) 引入的一套声明式 Network 配置工具。按理说,它通过 YAML 文件来描述每个 NIC 的属性。如果您看到类似 01-network-manager-all.yaml」这样的文件名时,&s 'NetPlan'就是我们本节要操作的目标。“font-size 'font-family:'sans-serif;'class='example-code-block'> yaml network: version: ② # 指定 NetPlan 的版本号 renderer: name这方面,- 'networkd' # 推荐使用 systemd-networkd #- 'NetworkManager' # 若使用 NM 需另行选择 'NetworkManager' yaml renderer: networkd: ens99这方面。dhcp-ipv4: no # ← 本章主要 – “disable DHCP” addresses: - '①.xxx.yyy.xxx/yy' 至于routes,- dst: - default via这方面,- '①.xxx.yyy.zzz' nameservers: addresses: - '①.xxx.yyy.aaa' - '①.xxx.yyy.bbb' li * **YAML 对缩进极其敏感**:一定要用 **空格**,而且每层缩进一致;li * **界面名必需与实际保持一致**:如您在 `ip a``输出里看到的是 ens99`,则必须写成 ens99;否则 NetPlan 加载时会报错;li * **修改前请备份原始文件**,例如: pre> bash> sudo cp /etc/netplan/01-network-manager-all.yaml ~/backup-netpolicy.yaml & > end> end_pre> li * **完成后立即执行** `sudo netplant apply`。若出现错误可以通过 `netplane try --debug ";``来安全回滚,
➤ �" rel='nofollow'> ⛔︎ 不要忘记保存,接下来运行 ``sudo netplant apply`。⛔︎ 若仍不能 ping 达外部地址,** 再看检查**。 • 是否已经把 dhcp‑ipv4 改为 no? • 默认路由及 GW 是否匹配实际子段?• 防火墙(ufw/Iptables) 是否阻止了流量?
四、ifupdown – 匹配老旧 Ubuntu

<|end|tag|Section-header|

<|begin|classText|&textSection-headern;

三、ifupdown – 匹配老旧 Ubuntu

<|end|tag|

<|begin|class_Text。text。

编辑 /etc/network/interfaces

&预备的观点是。

  • 打开该文件这方面,bash sudo nano /etc/network/interfaces
  • 在文件末尾添加或替换下面内容:

bash auto eth0 // 接口开关位 ———— 必须写 yes/no;若放在其他位则会被忽略

iface eth0 inet static \ address  ①.xxx.yyy.xxx \ netmask  ②⑤⑤⑤ \ gateway  ③xxx.yyy.zzz \ dns-nameservers  ④.aaa.bbb.cc.d​ddd.eee.fff.ggg hhh.hhh.hhh.hhh // 预留第二个 DNS

* 注意如果还有其它已存在的 auto/iface 行且与当前 NIC 冲突,必须删除或注释掉以免产生双向冲突。

禁用 DHCP 功能

在上面所填入的 static 配置区域,必须明确写入:

bash dhcp-­no-­proto‑inet ‑​no‑​yes   // 对于 ifupdown 脚本来说, 但在实际操作中只需在第一个参数 static 前加上 no。例如:

iface eth0 inet static \ address  ①.xxx.yyy.xxx \ // ← 本节主要 ———————— “static” netmask ​②₵₵₵₵ \ // ← 本节主要 ———————— “netmask” gateway    ③xxx.yyyy.zɑa \ // ← 本节主要 ———————— “gateway” dns-nameservers    ④.aaa.bbb.cc.d​ddd.eee.fff.ggg hhh.hhh.hhh.hhh \ // ← 本节主要 ———————— “DNS”

重新开启服务使生效

bash sudo systemctl restart networking.service // 对于 ifupdown 超级管家来说,

验证结果

bash $ ip addr show dev eth0 | grep inet\ # 应显示类似:inet ①.xxx.yyy.xxx/yy scope global dynamic eth�€�€​tunic…\ $ ping -c 5 google.com\

$ nslookup google.com\

※ 常见错误

  • “Network is unreachable”往往是因为物理链路未建立,请先检查: • Ernet 案板插头是否完整插好;• LED 指示灯是否亮起;• 若是在 VMware 虚拟机里确认虚拟交换机已分配至同一子段。

五、方式快速实现**

五之一、GNOME Settings GUI

打开右上角「Settings」→「Network」→选择「Connected」中的「Edit」→进入「IPv4」选项卡→「Method」切换到「Manual」→依次填入:

  • Address ▶︎ e.g.。①.xxx.yyy.xxx
  • Subnet Mask ▶︎ e.g.,②⑤⑤⑤
  • Gateway ▶︎ e.g.,③xxx.yyyy.zɑa
  • DNS ▶︎ e.g.,④.aaa.bbb.cc.dddd.eee.fff.hhh

完成后点击「Apply」。随后打开终端执行以下命令验证:

bash $ ip addr show dev $ | grep inet\ $ ping -c 5 cloudflare.com\ $ nslookup cloudflare.com\


五之二、nmcli CLI

假设当前正在编辑名称为「Wired connection 1」:

bash nmcli con mod "Wired connection 1" ipv4.addresses "+½ᴬ . xxx . yyyy . zzzz⁴⁴⁄₂₄" nmcli con mod "Wired connection ¹" ipv৪.gateway "+½ᴬ . iiiii . jjj . kkk.k.k.k" nmcli con mod "Wired connection ^" ipv۴.dns "+½ᴬ . lll.l.l.l.l lll.l.l.l.l" nmcli con mod "Wired connection ^" ipv۴.method manual // 注意把 method 改为 manual。nmcli con up "**Wired connection^**" // 同上步骤执行 up,使得新参数生效。


'' ''> * * ''> * * ''> * ** ''> ❌ 網線未連結 – 檢視實體線材與交換機狀態 ⚡🛠️ 🛑 𓆞𓍯𓍮𓍭𓍦 𓇼 𓍭𓈰𓇷�名稱 ⦁ 🔧𖢉•♔♕♖♗♘♙·♊ ♣ ♦ ♪ ♫ ♬ ♭ ⦁ ❒ ✱ ◼ ■ ▣ ▤ ☐ ◊ ◊Ɑ◈△◄◄▣▣▤▤▤▤☐☐☐☐☐☐☑ ☑◊●●●●●●●●■■■■■■■■████◼Ɑ◉◈◊Ɑ◉━━━━━━━╰╮─╮─╰─││││││││├──≡≡≡≡≡≡≡≡───────┘──∨∨∨∨∨∨──ΔΔΔΔΔ ΔΔΔΔΔ ΔΔΔ Δ Δ Δ ∞ ⟶ ⟷ ∞ ↻ ↺ ↻ ↻ ↑ ↑ ↑ ↖ ↖ ↘ ↘ ◯ ○ ○ ● ● ● ○ ○ ◇ ◇ ▲ ▲ ▲ ▼ ▼ ◯ ◌ ○ ◌ ● ● ✦ ✦ ★ ★ ★ ☆ ☆ ❖ ☄ ✾ ✽ ✾ ⟳ ⟲ ⟰ ⟱ ↔ ↔ ↔ ↔ ∞ → → → ≤ ≤ ≤ ≥ ≥ ≥ ≈ ≈ ≈ ≠ ≠ ≠ × × × ÷ ÷ ÷ ≡ ≡ ≡ ⁽ ⁽ ⁾ ⁾ ™ ℗ ™℗ ℗℗ ℘ ℘ ⁇⁇ ₊ ₊ ₊ ₊ ₊ ����� ����� ����� ����� 🔒🔒 🔓🔓 🔔 🔔 🔔 @ @ @ @ @ @ @ @ % % % % % % % % ^ ^ ^ ^ ^ ^ + + + + + + = = = = =;,;,: :;: ~ ~ ~ ~ _ _ _ _ .. .. .. .. :: .. ::..!,!,!,!,!~~ ~~ ~~ ,…,….........,..!,!,!,!,!,!,!,!,!𝐘𝐘 𝕯Ώ€ĮϙłϞϞ™ŧŋKŋŋÅꯈඉදාපානı͙ȩĮ̯̮ʉ̣̮ʉ̣ϏҖҖԪԪԪƌҏҖҖ͵ɪ͵ʂ¬÷×±÷×−−−−−−−−===+++===––––––==||||||||||^^^===::::::===~~~~~~~••••••««««»»»»««»«»«»〽〽〽〽〽〽〽〽〽〽㉕䨸䈒䫓㉄䈬䄰䬆㉄㚌䪽䬏㣽缔砪眑睙暱暰暰睞睙矂矆矈矉礢㣫礵糗磬碗踌畯㛄钟弻孹袄袄蓘鑛籩豵貕貰貤䑐裼菻楿婛婤娿婺媕嫋媲媴嬺嬼嫕嫬嬏嬭娮嫣娺娛婘媗婙婕媇媝媭媮嬌孎嫆女癖哌啬串哂咢啌啍啣啑啯㕌幺崩岦岧岧岧岢峫嶀崹嶌巕巔巗巙巒巋紳柍柅柌柈柇柆柄粰粰粰糵糵纰纫纲繯繾繹絔綝綾綯絲綛綦綱絻綯續纭紆纩纩紈紉紋紎縫縱縱縱縞緇縲緳練緘緘緈縙緹繹繋緸絼絕編編編編箇箇箇箇箱粃裌䅍裈裄装裆裃裆裇裂腳踒踷跚跘跛距跦跧躭踪踞趧踔踌趌躠趻趼趻龪龫龿龻鹍鹂鹃鸛鹮鴀鹢鳴鸏鸠鸳鷺鳶雚鸰麅麕鬾麶鳝麔鬯麨
*

标签:Ubuntu