|
|
|
最近听说不少坛友的甲骨文机器的网络失去了连接,尤其是以dhcp方式配置的IPv6网络居多,dhcp依赖上游路由自动告知机器对应的IP信息,如果我们强制给本机静态IP配置,相当于我们已经有了访问网络的凭证,只要基础网络未发生故障,就可以无视依赖上游dhcp服务器再发给我们的联网凭证,始终做到“不掉”IP,因为IP就写在机器的网络配置里,不会存在“掉”一说了,除非整个网络挂掉了。我的好多台甲骨文机器通过强给静态IPv4 IPv6参数,连接一直很稳定,没出现掉网络的情况。
手工从动态改成静态网络稍微有点麻烦,闲置吃灰鸡可使用我的一键重装脚本,加上 --network "static" 参数,重装到的新系统里IPv4 IPv6自动被静态配置了,非常方便。
项目地址,欢迎 star,github 主页或私信反馈:
https://github.com/leitbogioro/Tools
论坛主贴:
https://fanqiangdang.com/forum.php?mod=viewthread&tid=1159839
由于shell传递特殊的字符串有可能会被不当处理,原则上密码建议用单引号括起来,或保持默认的 LeitboGi0ro,重装后进系统改。- bash InstallNET.sh -debian 12 -port "端口" -pwd '密码' -mirror "选一个离机器地理较近的镜像源" --network "static"bash InstallNET.sh -ubuntu 22.04 -port "端口" -pwd '密码' -mirror "选一个离机器地理较近的镜像源" --network "static"bash InstallNET.sh -kali rolling -port "端口" -pwd '密码' -mirror "选一个离机器地理较近的镜像源" --network "static"bash InstallNET.sh -alpine edge -port "端口" -pwd '密码' -mirror "选一个离机器地理较近的镜像源" --network "static"bash InstallNET.sh -centos 9 -port "端口" -pwd '密码' -mirror "选一个离机器地理较近的镜像源" --network "static"bash InstallNET.sh -rocky 9 -port "端口" -pwd '密码' -mirror "选一个离机器地理较近的镜像源" --network "static"bash InstallNET.sh -alma 9 -port "端口" -pwd '密码' -mirror "选一个离机器地理较近的镜像源" --network "static"bash InstallNET.sh -fedora 38 -port "端口" -pwd '密码' -mirror "选一个离机器地理较近的镜像源" --network "static"
复制代码
如果机器上在跑业务,不方便重装,只能在当前系统环境中操作,如何把动态IP改成静态IP?办法是有的,先获得网络配置。
主IPv4地址:
- ip -4 addr show | grep -wv "lo" | grep -w 'inet'
复制代码
IPv4网关:
IPv4掩码:
- 甲骨文机器一般为24,全写形式就是255.255.255.0
复制代码
IPv4 DNS,国外一般为cloudflare和谷歌的:
主IPv6地址:
- ip -6 addr show | grep -wv "lo" | grep -w 'inet6'
复制代码
IPv6网关:
IPv6掩码:
IPv6 DNS,国外一般为cloudflare和谷歌的:
- 2606:4700:4700::1001 2001:4860:4860::8844
复制代码
常见Linux发行版网络配置文件目录:
Debian/Kali/AlpineLinux:
如果是被cloud init初始化后的Debian系,其网络配置文件也有可能是:
- /etc/network/interfaces.d/50-cloud-init.cfg
复制代码
配置模板:- # This file describes the network interfaces available on your system# and how to activate them. For more information, see interfaces(5).source /etc/network/interfaces.d/*# The loopback network interfaceauto loiface lo inet loopback# The primary network interfaceallow-hotplug eth0iface eth0 inet static address 本机IPv4地址 netmask 255.255.255.0 gateway 10.0.0.1 dns-nameservers 1.0.0.1 8.4.4.8iface eth0 inet6 static address 本机IPv6地址 netmask 64 gateway 本机本地回环网卡IP dns-nameservers 2606:4700:4700::1001 2001:4860:4860::8844
复制代码
AlpineLinux稍有区别,网卡名必须以eth0开头,不能是别的,注意IPv6部分“pre-up”这段话必须要给,否则IPv6配置无效:- auto loiface lo inet loopbackauto eth0iface eth0 inet static address 本机IPv4地址 netmask 255.255.255.0 gateway 10.0.0.1iface eth0 inet6 static address 本机IPv6地址 netmask 64 gateway 本机本地回环网卡IP pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra
复制代码
AlpineLinux dns部分是需要另配的,备份原/etc/resolv.conf文件,去我项目主页下一个写好的放在原目录即可:- cp /etc/resolv.conf /etc/resolv.conf.bakwget -qO /etc/resolv.conf 'https://github.com/leitbogioro/Tools/blob/master/Linux_reinstall/Alpine/network/resolv.conf'
复制代码
修改后重启网络服务:
- /etc/init.d/networking restart
复制代码
CentOS AlmaLinux RockyLinux Fedora 统称红帽系,CentOS 7/8 AlmaLinux/RockyLinux 8 用的还是老的ifupdown配置格式。
如果不确定网卡名,可以先看一下目录:
ls /etc/sysconfig/network-scripts/
ifcfg-网卡名(如eth0)
确定好网卡名后,编辑一下文件,参考模板:- TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noNM_USER_ORG__FREEDESKTOP___NETWORK_MANAGER__ORIGIN=nm-initrd-generatorBOOTPROTO=noneIPADDR=本机IPv4地址PREFIX=24GATEWAY=10.0.0.1DNS1=1.0.0.1DNS2=8.8.4.4DEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=noIPV6ADDR=本机IPv6地址/64IPV6_DEFAULTGW=本机本地回环网卡IPDNS3=2606:4700:4700::1001DNS4=2001:4860:4860::8844IPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=eui64NAME=eth0UUID=21206a62-3379-426e-847c-6eaa4cf93c65DEVICE=eth0ONBOOT=yesAUTOCONNECT_PRIORITY=-100AUTOCONNECT_RETRIES=1MULTI_CONNECT=1DEVTIMEOUT=60
复制代码
修改完成重启网络服务:
- systemctl restart network
复制代码
CentOS/AlmaLinux/RockyLinux 9和Fedora用的是全新的NetworkManager,语法比老的ifupdown好点。
如果不确定网卡名,可以先看一下目录:
- ls /etc/NetworkManager/system-connections/网卡名(如eth0).nmconnection
复制代码
确定好网卡名后,编辑一下文件,参考模板:
- [connection]id=eth0uuid=bc643fd1-883f-4978-811f-3cd7ad2d9545type=ethernetautoconnect-priority=-100autoconnect-retries=1interface-name=enp0s6multi-connect=1timestamp=1686480426wait-device-timeout=60000[ethernet][ipv4]address1=本机IPv4地址/24,10.0.0.1dns=1.0.0.1;8.8.4.4;method=manual[ipv6]addr-gen-mode=eui64address1=本机IPv6地址/64,本机本地回环网卡IPdns=2606:4700:4700::1001;2001:4860:4860::8844;method=manual[proxy][user]org.freedesktop.NetworkManager.origin=nm-initrd-generator
复制代码
修改完成重启网络服务:
- systemctl restart NetworkManager.service
复制代码
红帽正处于采用ifupdown和NetworkManager交替期,有的时候高版本的红帽,比如9,也会采用旧的ifupdown方式来管理网络,这时候要把/etc/sysconfig/network-scripts/和/etc/NetworkManager/system-connections/这两个目录都看一下,确认哪个才存放的是有效网络配置。
Ubuntu 18.04 以后采用netplan来管理网络,其配置文件格式为“*.yaml”,路径如下:
- ls /etc/netplan/数字-xxx.yaml
复制代码
以下仅展示version 2的netplan yaml配置模板,适用于Ubuntu 20.04/22.04,适用于Ubuntu 18.04的version 1的,请把version 2改成version 1,再把“routes:”和其从属的“to”和“via”删掉,改成:
gateway4: IPv4网关
gateway6: IPv6网关
注意,version 1和version 2之间,指定路由部分的语法不能混用,否则重启netplan任务会报错!
- # This file is generated from information provided by the datasource. Changes# to it will not persist across an instance reboot. To disable cloud-init's# network configuration capabilities, write a file# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:# network: {config: disabled}network: ethernets: eth0: addresses: - 本机IPv4地址/24 - 本机IPv6地址/64 dhcp4: false dhcp6: false nameservers: addresses: - 1.0.0.1 - 2606:4700:4700::1001 - 8.8.4.4 - 2001:4860:4860::8844 routes: - to: default via: 10.0.0.1 - to: default via: 本机本地回环网卡IP version: 2
复制代码
修改完应用netplan配置并重启netplan服务:
|
|