ubuntu 22.04版本修改伺服器名、ip,dns資訊的操作方法

lusklusklusk發表於2023-10-12

總結
1、ubuntu修改伺服器名重啟後生效的方法是直接修改/etc/hostname檔案

2、ubuntu 22.04作業系統配置ip和dns資訊,一般只需要使用netplan命令列工具來配置就行,在/etc/netplan/在目錄下建立一個yaml檔案就可以實現ip和dns的配置,當然如果/etc/netplan下有多個yaml檔案,則所有/etc/netplan/*.yaml檔案都將被netplan命令列使用

3、個人不建議使用/etc/resolve.conf來配置ubuntu 22.04作業系統的dns資訊,因為太複雜了,這個檔案是被systemd-resolved服務託管。ubuntu作業系統/etc/resolve.conf中預設使用的是 nameserver 127.0.0.53迴環地址,/etc/resolve.conf文中有這麼一句話This is /run/systemd/resolve/stub-resolv.conf managed by man:systemd-resolved(8). Do not edit。說明這個檔案是被systemd-resolved這個服務託管的。透過 netstat -tnpl| grep systemd-resolved 檢視到這個服務是監聽在 53 號埠上。為啥要用127.0.0.53作為迴環地址而不是127.0.0.1,因為127網段都是迴環地址(127.0.0.1 - 127.255.255.254),不過通常用大家只喜歡用127.0.0.1來表示而已,53表示dns埠
3.1、新安裝的ubuntu 22.04環境不做其他改動的情況下,/etc/resolv.conf是/run/systemd/resolve/stub-resolv.conf的軟連結,如果只是手工更改/etc/resolv.conf中的內容,重啟會後發現/etc/resolv.conf中的內容又恢復成原樣了,比如註釋/etc/resolv.conf檔案中的nameserver 127.0.0.53這一行,重啟系統後被註釋掉的nameserver 127.0.0.53這一行又回來了,如果不想重啟後/etc/resolv.conf中的內容恢復成原樣,則執行systemctl stop systemd-resolved和systemctl disable systemd-resolved,或把/etc/resolv.conf對應的軟連結刪除,再手工建立一個/etc/resolv.conf
3.2、使用/etc/netplan/00-installer-config.yaml配置DNS 172.22.10.66並執行netplan apply使之生效,再修改/etc/systemd/resolved.conf內容裡的DNS為172.22.136.2,然後執行systemctl restart systemd-resolved,發現/etc/resolv.conf中的內容沒變還是127.0.0.53,再執行resolvectl status可以看到/etc/systemd/resolved.conf中的DNS 172.22.136.2存在,/etc/netplan/00-installer-config.yaml中的DNS 172.22.10.66也在,就是沒有/etc/resolv.conf中的127.0.0.53。重啟作業系統後/etc/resolv.conf中的內容沒變還是127.0.0.53,重啟作業系統後執行resolvectl status還是隻有/etc/systemd/resolved.conf中的DNS 172.22.136.2和/etc/netplan/00-installer-config.yaml中的DNS 172.22.10.66,沒有/etc/resolv.conf中的127.0.0.53

4、ubuntu官方不建議使用/etc/resolve.conf來配置ubuntu 的dns資訊,ubuntu對於/etc/resolv.conf的官方描述:If you require DNS for your temporary network configuration, you can add DNS server IP addresses in the file /etc/resolv.conf. In general, editing /etc/resolv.conf directly is not recommended, but this is a temporary and non-persistent configuration.

5、ubuntu 22.04檢視dns資訊的命令是resolvectl status,該命令可以看到全域性dns資訊和某個網路卡的dns資訊,全域性DNS伺服器資訊一般來自配置檔案/etc/systemd/resolved.conf,僅在/etc/resolv.conf不是一個指向/run/systemd/resolve/stub-resolv.conf, /usr/lib/systemd/resolv.conf, /run/systemd/resolve/resolv.conf 之一的軟連線的情況下,且/etc/systemd/resolved.conf中dns被註釋掉的情況下,全域性DNS伺服器才會讀取自/etc/resolv.conf,所以這就是不建議大家使用/etc/resolve.conf來配置ubuntu 的dns資訊的原因。




修改伺服器名
修改伺服器名為FRSBachDEV3,重啟後也生效的方法
vi /etc/hostname
FRSBachDEV3
備註:如果/etc/hostname檔案中的內容寫成hostname FRSBachDEV3,那麼重啟後伺服器名就變成了hostnameFRSBachDEV3




修改IP
netplan是一個命令列工具,用於ubuntu上配置網路,所有/etc/netplan/*.yaml檔案都將被使用

root@FRSBachDEV3:~# cat /etc/netplan/00-installer-config.yaml
# This is the nework config written by 'subiquity'
network:
  ethernets:
    ens160:
      dhcp4: true
  version: 2
root@FRSBachDEV3:~# vim /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    ens160:
      dhcp4: false
      addresses: [172.22.136.147/22]
      routes:
        - to: default
          via: 172.22.136.1
      nameservers:
        search: [dai.netdai.com,netdai.com]
        addresses: [172.22.10.66,172.22.10.67]
  version: 2


備註:
dhcp4中的4表示ipv4
gateway4中的4表示ipv4,不過gateway4已經被廢棄,配置了gateway4再執行netplan apply的話會報錯** (generate:1426): WARNING **: 09:54:13.918: `gateway4` has been deprecated, use default routes instead.See the 'Default routes' section of the documentation for more details.
routes項填寫閘道器地址
addresses項填寫ip地址
nameservers項填寫dns地址或搜尋域,其中addresses子項是dns地址列表,search子項是搜尋域名列表
version: 2這一項表示YAML版本是2,curtin,MaaS等目前使用的YAML的版本是1


root@FRSBachDEV3:~# netplan apply
root@FRSBachDEV3:~# cat /etc/resolv.conf
nameserver 127.0.0.53
options edns0 trust-ad
search dai.netdai.com netdai.com
root@FRSBachDEV3:~# ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.22.136.147  netmask 255.255.252.0  broadcast 172.22.139.255
        inet6 fe80::250:56ff:fe94:522d  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:94:52:2d  txqueuelen 1000  (Ethernet)
        RX packets 45071  bytes 3394009 (3.3 MB)
        RX errors 0  dropped 40  overruns 0  frame 0
        TX packets 765  bytes 78732 (78.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2331  bytes 168025 (168.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2331  bytes 168025 (168.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0



檢視閘道器

root@FRSBachDEV3:~# ip route | grep default
default via 172.22.136.1 dev ens160 proto static
root@FRSBachDEV3:~# nmcli dev show|grep GATEWAY
IP4.GATEWAY:                            172.22.136.1
IP6.GATEWAY:                            --
IP4.GATEWAY:                            --
IP6.GATEWAY:                            --




檢視dns

root@FRSBachDEV3:~# resolvectl status
Global
       Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Link 2 (ens160)
    Current Scopes: DNS
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 172.22.10.66
       DNS Servers: 172.22.10.66 172.22.10.67
        DNS Domain: dai.netdai.com netdai.com








實驗:如何才會使用到/etc/resolve.conf中的dns資訊

/etc/systemd/resolved.conf中dns為172.22.136.2
root@FRSBachDEV3:~# cat /etc/systemd/resolved.conf |grep DNS=
DNS=172.22.136.2
/etc/resolv.conf來自軟連結/run/systemd/resolve/stub-resolv.conf
root@FRSBachDEV3:~# ll /etc/resolv.conf
lrwxrwxrwx 1 root root 39 Aug  9  2022 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
root@FRSBachDEV3:~# cat /run/systemd/resolve/stub-resolv.conf
nameserver 127.0.0.53
options edns0 trust-ad
search dai.netdai.com netdai.com
/run/systemd/resolve/resolv.conf有來自/etc/systemd/resolved.conf中dns 172.22.136.2,也有來自/etc/netplan/00-installer-config.yaml中dns 172.22.10.66 172.22.10.67,就是沒有來自/etc/resolv.conf的127.0.0.53
root@FRSBachDEV3:~# cat /run/systemd/resolve/resolv.conf
nameserver 172.22.136.2
nameserver 172.22.10.66
nameserver 172.22.10.67
search dai.netdai.com netdai.com
/etc/systemd/resolved.conf中dns 172.22.136.2和/etc/netplan/00-installer-config.yaml中dns 172.22.10.66 172.22.10.67,就是沒有來自/etc/resolv.conf的127.0.0.53
root@FRSBachDEV3:~# resolvectl status
Global
         Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: stub
Current DNS Server: 172.22.136.2
       DNS Servers: 172.22.136.2
Link 2 (ens160)
    Current Scopes: DNS
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 172.22.10.66
       DNS Servers: 172.22.10.66 172.22.10.67
        DNS Domain: dai.netdai.com netdai.com
刪除/etc/resolv.conf來自軟連結,並手工建立/etc/resolv.conf檔案,其中dns為172.22.136.3
root@FRSBachDEV3:~# ll /etc/resolv.conf
-rw-r--r-- 1 root root 946 Oct 12 10:49 /etc/resolv.conf
root@FRSBachDEV3:~# cat /etc/resolv.conf
nameserver 172.22.136.3
options edns0 trust-ad
search dai.netdai.com netdai.com
保留/etc/systemd/resolved.conf中dns 172.22.136.2的情況下,重啟systemd-resolved,發現還是用的/etc/systemd/resolved.conf中dns 172.22.136.2而沒有使用手工建立/etc/resolv.conf檔案的dns 172.22.136.3
root@FRSBachDEV3:~# systemctl restart systemd-resolved
root@FRSBachDEV3:~# resolvectl status
Global
       Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: foreign
     DNS Servers: 172.22.136.2
Link 2 (ens160)
Current Scopes: DNS
     Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
   DNS Servers: 172.22.10.66 172.22.10.67
    DNS Domain: dai.netdai.com netdai.com
註釋掉/etc/systemd/resolved.conf中dns再重啟systemd-resolved,發現這個時候才真正用上了手工建立/etc/resolv.conf檔案的dns 172.22.136.3
root@FRSBachDEV3:~# vim /etc/systemd/resolved.conf
root@FRSBachDEV3:~# cat /etc/systemd/resolved.conf |grep DNS
# Some examples of DNS servers which may be used for DNS= and FallbackDNS=:
#DNS
root@FRSBachDEV3:~# systemctl restart systemd-resolved
root@FRSBachDEV3:~# resolvectl status
Global
         Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: foreign
Current DNS Server: 172.22.136.3
       DNS Servers: 172.22.136.3
        DNS Domain: dai.netdai.com netdai.com
Link 2 (ens160)
Current Scopes: DNS
     Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
   DNS Servers: 172.22.10.66 172.22.10.67
    DNS Domain: dai.netdai.com netdai.com
root@FRSBachDEV3:~# cat /run/systemd/resolve/resolv.conf
nameserver 172.22.136.3
nameserver 172.22.10.66
nameserver 172.22.10.67
search dai.netdai.com netdai.com


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2988622/,如需轉載,請註明出處,否則將追究法律責任。

相關文章