๐ง Linux ็ถฒ่ทฏ่จญๅฎๅ ฅ้ๅฐ้ฒ้:ไป้ขๅฝๅ、IP ่จญๅฎ、Gateway、DNS、ไธปๆฉๅ็ๅฎๆดๆไฝๆๅ
ๅจ Linux ็ณป็ตฑไธญ,็ถฒ่ทฏ่จญๅฎๆฏ็ณป็ตฑ้จ็ฝฒ、ไผบๆๅจไธ็ท、่ๆฌๅ็ฐๅขๆถๆง่้ฒ็ซฏๆๅไธญไธๅฏๆ็ผบ็ๅบ็ค。
็ก่ซๆฏ่จญๅฎ้ๆ
IP、็ฎก็ไป้ขๅ็จฑ(ๅฆ ens160、eth0)、ไฟฎๆน DNS、่จญๅฎ Gateway,ๆๆฏ่ชฟๆดไธปๆฉๅ,
้ไบ้ฝๆฏ Linux ๆฐๆ่่ณๆทฑๅทฅ็จๅธซๆฏๅคฉๆๆฅ่งธ็ๆ ธๅฟๆ่ฝ。
ๆฌ็ฏๆ็ซ ไปฅ็พ็ง็ดๆนๅผ,ๅธถไฝ ๅพ「ๆๅบ็ค็ๆฆๅฟต」ไธ่ทฏๅฐ「ๅฏฆๅ่จญๅฎๆนๅผ」, ๅฎๆด่งฃๆ Linux ็ถฒ่ทฏ่จญๅฎ็ๆๆๅฟ ๅ็ฅ่ญ,ไธฆๆไพๆไปค็คบไพ、่จญๅฎๆช็ฏไพ、ๆธฌ่ฉฆๆนๆณ่ๅธธ่ฆ้ฏ่ชคๆๆฅ。
๐ 1. Linux ็ถฒ่ทฏไป้ขๅฝๅ(Predictable Interface Names)
ๅพ CentOS 7、RHEL 7、Ubuntu 16.04 ้ๅง,Linux ๆนๆก「ๅฏ้ ๆไป้ขๅฝๅ」,ไพๅฆ:
ens160– PCI-E slot ็บๅบๆบ็ๅฝๅenp0s3– ๅฏๆตๆไฝ็ฝฎๅฝๅeth0– ่ๅผๅฝๅ(ๅทฒ้ๆญฅๆทๆฑฐ)
๐ ๆฅ่ฉขๆๆไป้ข
ip link
๐ ๆฅ่ฉขไป้ข่ฉณ็ดฐ่ณ่จ
ip addr show ens160
่ฅไฝ ไฝฟ็จ่ๆฌๅๅนณๅฐ(Proxmox、vSphere、KVM),ไป้ขๅ็จฑ้ๅธธไพ็กฌ้ซ้ ๅบ่ๅฎ。
๐ 2. ่จญๅฎ้ๆ IP:ไธ็จฎๆนๅผๆฏ่ผ(ifcfg / nmcli / systemd-networkd)
Linux ไธป่ฆๆไธๅคง็ถฒ่ทฏ่จญๅฎๆนๅผ,ๅ็ผ่ก็ๆฏๆดๆ ๆณๅฆไธ:
| ่จญๅฎๆนๅผ | ้ฉ็จ็ณป็ตฑ | ้ฃๆๅบฆ | ็น่ฒ |
|---|---|---|---|
| ifcfg(ๅณ็ตฑ) | RHEL / CentOS / Rocky Linux | ไธญ็ญ | ไฝฟ็จ็ถฒ่ทฏ่จญๅฎๆช,ไผๆฅญ็ฐๅขๅธธ่ฆ |
| nmcli / nmtui | ๆๆ NetworkManager ็ณป็ตฑ | ๆ็ฐกๅฎ | ็พไปฃๅ、็ฉฉๅฎ、ๆฏๆด GUI / CLI |
| systemd-networkd | Ubuntu Server / Debian / ๅฎนๅจ | ไธญ็ญ | ้ซๆ็、้ฉๅ้ฒ็ซฏ่ container |
๐ฆ 2-1. ไฝฟ็จ nmcli ่จญๅฎ้ๆ IP(ๆๆจ่ฆๆนๅผ)
nmcli con mod ens160 ipv4.addresses 192.168.1.20/24
nmcli con mod ens160 ipv4.gateway 192.168.1.1
nmcli con mod ens160 ipv4.dns "8.8.8.8 1.1.1.1"
nmcli con mod ens160 ipv4.method manual
nmcli con down ens160; nmcli con up ens160
---
๐ฆ 2-2. ไฝฟ็จ ifcfg ่จญๅฎ้ๆ IP(RHEL / CentOS ็ณปๅ)
่จญๅฎๆชไฝ็ฝฎ:
/etc/sysconfig/network-scripts/ifcfg-ens160
่จญๅฎๅ งๅฎน:
BOOTPROTO=none
DEVICE=ens160
IPADDR=192.168.1.20
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=1.1.1.1
ONBOOT=yes
้ๆฐๅๅ็ถฒ่ทฏ:
systemctl restart NetworkManager
---
๐ฆ 2-3. ไฝฟ็จ systemd-networkd ่จญๅฎ้ๆ IP(Ubuntu Server ็ญ)
่จญๅฎๆช:
/etc/systemd/network/10-ens160.network
ๅ งๅฎน:
[Match]
Name=ens160
[Network]
Address=192.168.1.20/24
Gateway=192.168.1.1
DNS=8.8.8.8 1.1.1.1
ๅ็จ:
systemctl enable systemd-networkd --now
systemctl restart systemd-networkd
๐ 3. ๆฅ็่ๆธฌ่ฉฆ็ถฒ่ทฏ็ๆ (ๅฟ ๅๆไปค)
๐ ๆฅ็็ฎๅ IP
ip addr
๐ ๆธฌ่ฉฆๆฏๅฆ้ฃๅฐ Gateway
ping 192.168.1.1
๐ ๆฅ็่ทฏ็ฑ่กจ
ip route
๐ ๆธฌ่ฉฆ DNS
dig google.com
nslookup google.com
๐ ้กฏ็คบ้ฃ็ท็ๆ (netstat ๆฟไปฃ)
ss -tulnp
๐ 4. DNS(Resolver)่จญๅฎๆนๅผ
ๅจๆฏๆด NetworkManager ็็ณป็ตฑไธญ,DNS ้ๅธธ็ฑ nmcli ๆ DHCP ็ดๆฅ็ฎก็。
๐ช ๆนๅผไธ:ไฝฟ็จ nmcli ่จญๅฎ
nmcli con mod ens160 ipv4.dns "8.8.8.8 1.1.1.1"
nmcli con up ens160
๐ช ๆนๅผไบ:็ทจ่ผฏ resolv.conf(ไธๆจ่ฆ)
ๅจ systemd-resolved ๆ NetworkManager ็ฎก็ไธ,ๆๅไฟฎๆน /etc/resolv.conf ๆ่ขซ่ฆ่。
ๅฆๆๅฟ
่ฆ,ๅฏไฝฟ็จ:
chattr +i /etc/resolv.conf
(⚠️ ๅ
้็นๆฎ็จ้)
๐ 5. ่จญๅฎ้ ่จญ่ทฏ็ฑ(Gateway)
๐ง ไฝฟ็จ nmcli
nmcli con mod ens160 ipv4.gateway 192.168.1.1
๐ง ไฝฟ็จ ip route(่จๆ่จญๅฎ)
ip route add default via 192.168.1.1
๐ง ๆชขๆฅ่ทฏ็ฑ่กจ
ip route show
๐ 6. ไธปๆฉๅ(Hostname)่จญๅฎ
๐ง ๆฅ็ไธปๆฉๅ
hostnamectl
๐ง ไฟฎๆนไธปๆฉๅ
hostnamectl set-hostname web01.example.local
้ๅ shell ๅณๅฏ็ๆ。
๐ 7. ๅธธ่ฆๅ้ก่ๆๆฅๆๅทง(Troubleshooting)
❗ ๆฒๆ IP?
nmcli device status
❗ DNS ็กๆณ่งฃๆ?
dig @8.8.8.8 google.com
❗ ็กๆณไธ็ถฒไฝๅฏ ping Gateway?
- ไธๆธธ Gateway ๆชๅ็จ NAT
- ้ฒ็ซ็้ปๆ
- ๆฒๆๆญฃ็ขบ DNS ่จญๅฎ
❗ ไป้ขๅ็จฑๆน่ฎ(ens160 → enp0s3)?
้ๅธธๆฏ็กฌ้ซ้ ๅบ่ฎๅ(่ๆฌๅๅนณๅฐๆดๅธธ่ฆ)。ๅฏ้้:
ls -l /sys/class/net/
ๆพๅบ้่ฏ็ PCI ่ฃ็ฝฎ。
ๆฒๆ็่จ:
ๅผต่ฒผ็่จ