全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 4116|回复: 11

甲骨文IP防掉,改IPv4 IPv6静态配置小妙招,亲测有效

[复制链接]
发表于 2023-6-11 19:21:02 | 显示全部楼层 |阅读模式
本帖最后由 天权璇玑 于 2023-6-11 19:24 编辑

最近听说不少坛友的甲骨文机器的网络失去了连接,尤其是以dhcp方式配置的IPv6网络居多,dhcp依赖上游路由自动告知机器对应的IP信息,如果我们强制给本机静态IP配置,相当于我们已经有了访问网络的凭证,只要基础网络未发生故障,就可以无视依赖上游dhcp服务器再发给我们的联网凭证,始终做到“不掉”IP,因为IP就写在机器的网络配置里,不会存在“掉”一说了,除非整个网络挂掉了。我的好多台甲骨文机器通过强给静态IPv4 IPv6参数,连接一直很稳定,没出现掉网络的情况。

手工从动态改成静态网络稍微有点麻烦,闲置吃灰鸡可使用我的一键重装脚本,加上 --network "static" 参数,重装到的新系统里IPv4 IPv6自动被静态配置了,非常方便。

项目地址,欢迎 star,github 主页或私信反馈:
https://github.com/leitbogioro/Tools

论坛主贴:
https://hostloc.com/forum.php?mod=viewthread&tid=1159839

由于shell传递特殊的字符串有可能会被不当处理,原则上密码建议用单引号括起来,或保持默认的 LeitboGi0ro,重装后进系统改。
  1. bash InstallNET.sh -debian 12 -port "端口" -pwd '密码' -mirror "选一个离机器地理较近的镜像源" --network "static"
  2. bash InstallNET.sh -ubuntu 22.04 -port "端口" -pwd '密码' -mirror "选一个离机器地理较近的镜像源" --network "static"
  3. bash InstallNET.sh -kali rolling -port "端口" -pwd '密码' -mirror "选一个离机器地理较近的镜像源" --network "static"
  4. bash InstallNET.sh -alpine edge -port "端口" -pwd '密码' -mirror "选一个离机器地理较近的镜像源" --network "static"
  5. bash InstallNET.sh -centos 9 -port "端口" -pwd '密码' -mirror "选一个离机器地理较近的镜像源" --network "static"
  6. bash InstallNET.sh -rocky 9 -port "端口" -pwd '密码' -mirror "选一个离机器地理较近的镜像源" --network "static"
  7. bash InstallNET.sh -alma 9 -port "端口" -pwd '密码' -mirror "选一个离机器地理较近的镜像源" --network "static"
  8. bash InstallNET.sh -fedora 38 -port "端口" -pwd '密码' -mirror "选一个离机器地理较近的镜像源" --network "static"
复制代码


如果机器上在跑业务,不方便重装,只能在当前系统环境中操作,如何把动态IP改成静态IP?办法是有的,先获得网络配置。

主IPv4地址:

  1. ip -4 addr show | grep -wv "lo" | grep -w 'inet'
复制代码


IPv4网关:

  1. ip -4 route show default
复制代码


IPv4掩码:

  1. 甲骨文机器一般为24,全写形式就是255.255.255.0
复制代码


IPv4 DNS,国外一般为cloudflare和谷歌的:

  1. 1.0.0.1 8.8.4.4
复制代码


主IPv6地址:

  1. ip -6 addr show | grep -wv "lo" | grep -w 'inet6'
复制代码


IPv6网关:

  1. ip -6 route show default
复制代码


IPv6掩码:

  1. dhcp IPv6掩码一般为64
复制代码


IPv6 DNS,国外一般为cloudflare和谷歌的:

  1. 2606:4700:4700::1001 2001:4860:4860::8844
复制代码


常见Linux发行版网络配置文件目录:

Debian/Kali/AlpineLinux:

  1. /etc/network/interfaces
复制代码


如果是被cloud init初始化后的Debian系,其网络配置文件也有可能是:

  1. /etc/network/interfaces.d/50-cloud-init.cfg
复制代码


配置模板:
  1. # This file describes the network interfaces available on your system
  2. # and how to activate them. For more information, see interfaces(5).

  3. source /etc/network/interfaces.d/*

  4. # The loopback network interface
  5. auto lo
  6. iface lo inet loopback

  7. # The primary network interface
  8. allow-hotplug eth0
  9. iface eth0 inet static
  10.          address 本机IPv4地址
  11.          netmask 255.255.255.0
  12.          gateway 10.0.0.1
  13.          dns-nameservers 1.0.0.1 8.4.4.8
  14. iface eth0 inet6 static
  15.          address 本机IPv6地址
  16.          netmask 64
  17.          gateway 本机本地回环网卡IP
  18.          dns-nameservers 2606:4700:4700::1001 2001:4860:4860::8844
复制代码


AlpineLinux稍有区别,网卡名必须以eth0开头,不能是别的,注意IPv6部分“pre-up”这段话必须要给,否则IPv6配置无效:
  1. auto lo
  2. iface lo inet loopback

  3. auto eth0
  4. iface eth0 inet static
  5.         address 本机IPv4地址
  6.         netmask 255.255.255.0
  7.         gateway 10.0.0.1
  8. iface eth0 inet6 static
  9.         address 本机IPv6地址
  10.         netmask 64
  11.         gateway 本机本地回环网卡IP
  12.         pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra
复制代码


AlpineLinux dns部分是需要另配的,备份原/etc/resolv.conf文件,去我项目主页下一个写好的放在原目录即可:
  1. cp /etc/resolv.conf /etc/resolv.conf.bak
  2. wget -qO /etc/resolv.conf 'https://github.com/leitbogioro/Tools/blob/master/Linux_reinstall/Alpine/network/resolv.conf'
复制代码


修改后重启网络服务:

  1. /etc/init.d/networking restart
复制代码


CentOS AlmaLinux RockyLinux Fedora 统称红帽系,CentOS 7/8 AlmaLinux/RockyLinux 8 用的还是老的ifupdown配置格式。

如果不确定网卡名,可以先看一下目录:
ls /etc/sysconfig/network-scripts/
ifcfg-网卡名(如eth0)

确定好网卡名后,编辑一下文件,参考模板:
  1. TYPE=Ethernet
  2. PROXY_METHOD=none
  3. BROWSER_ONLY=no
  4. NM_USER_ORG__FREEDESKTOP___NETWORK_MANAGER__ORIGIN=nm-initrd-generator
  5. BOOTPROTO=none
  6. IPADDR=本机IPv4地址
  7. PREFIX=24
  8. GATEWAY=10.0.0.1
  9. DNS1=1.0.0.1
  10. DNS2=8.8.4.4
  11. DEFROUTE=yes
  12. IPV4_FAILURE_FATAL=no
  13. IPV6INIT=yes
  14. IPV6_AUTOCONF=no
  15. IPV6ADDR=本机IPv6地址/64
  16. IPV6_DEFAULTGW=本机本地回环网卡IP
  17. DNS3=2606:4700:4700::1001
  18. DNS4=2001:4860:4860::8844
  19. IPV6_DEFROUTE=yes
  20. IPV6_FAILURE_FATAL=no
  21. IPV6_ADDR_GEN_MODE=eui64
  22. NAME=eth0
  23. UUID=21206a62-3379-426e-847c-6eaa4cf93c65
  24. DEVICE=eth0
  25. ONBOOT=yes
  26. AUTOCONNECT_PRIORITY=-100
  27. AUTOCONNECT_RETRIES=1
  28. MULTI_CONNECT=1
  29. DEVTIMEOUT=60
复制代码


修改完成重启网络服务:

  1. systemctl restart network
复制代码


CentOS/AlmaLinux/RockyLinux 9和Fedora用的是全新的NetworkManager,语法比老的ifupdown好点。

如果不确定网卡名,可以先看一下目录:

  1. ls /etc/NetworkManager/system-connections/
  2. 网卡名(如eth0).nmconnection
复制代码


确定好网卡名后,编辑一下文件,参考模板:

  1. [connection]
  2. id=eth0
  3. uuid=bc643fd1-883f-4978-811f-3cd7ad2d9545
  4. type=ethernet
  5. autoconnect-priority=-100
  6. autoconnect-retries=1
  7. interface-name=enp0s6
  8. multi-connect=1
  9. timestamp=1686480426
  10. wait-device-timeout=60000

  11. [ethernet]

  12. [ipv4]
  13. address1=本机IPv4地址/24,10.0.0.1
  14. dns=1.0.0.1;8.8.4.4;
  15. method=manual

  16. [ipv6]
  17. addr-gen-mode=eui64
  18. address1=本机IPv6地址/64,本机本地回环网卡IP
  19. dns=2606:4700:4700::1001;2001:4860:4860::8844;
  20. method=manual

  21. [proxy]

  22. [user]
  23. org.freedesktop.NetworkManager.origin=nm-initrd-generator
复制代码


修改完成重启网络服务:

  1. systemctl restart NetworkManager.service
复制代码


红帽正处于采用ifupdown和NetworkManager交替期,有的时候高版本的红帽,比如9,也会采用旧的ifupdown方式来管理网络,这时候要把/etc/sysconfig/network-scripts/和/etc/NetworkManager/system-connections/这两个目录都看一下,确认哪个才存放的是有效网络配置。

Ubuntu 18.04 以后采用netplan来管理网络,其配置文件格式为“*.yaml”,路径如下:

  1. ls /etc/netplan/
  2. 数字-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任务会报错!

  1. # This file is generated from information provided by the datasource.  Changes
  2. # to it will not persist across an instance reboot.  To disable cloud-init's
  3. # network configuration capabilities, write a file
  4. # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
  5. # network: {config: disabled}
  6. network:
  7.     ethernets:
  8.         eth0:
  9.             addresses:
  10.             - 本机IPv4地址/24
  11.             - 本机IPv6地址/64
  12.             dhcp4: false
  13.             dhcp6: false
  14.             nameservers:
  15.                 addresses:
  16.                 - 1.0.0.1
  17.                 - 2606:4700:4700::1001
  18.                 - 8.8.4.4
  19.                 - 2001:4860:4860::8844
  20.             routes:
  21.             -   to: default
  22.                 via: 10.0.0.1
  23.             -   to: default
  24.                 via: 本机本地回环网卡IP
  25.     version: 2
复制代码


修改完应用netplan配置并重启netplan服务:

  1. netplan apply
复制代码
发表于 2023-6-11 19:44:00 | 显示全部楼层
直接写个shell脚本 每半个小时执行一次 发现pingGoogle不通直接自动执行挂在就可以。没必要如此麻烦
发表于 2023-6-11 19:25:46 来自手机 | 显示全部楼层
太麻烦了,其实掉,也不是一直掉
 楼主| 发表于 2023-6-11 19:26:27 | 显示全部楼层
emptysuns 发表于 2023-6-11 19:25
太麻烦了,其实掉,也不是一直掉


最简单的方式就是给 --network "static" 一键重装,静态自动配好,只要机器上没重要数据
 楼主| 发表于 2023-6-11 19:59:52 来自手机 | 显示全部楼层
冲浪麦浪花郎 发表于 2023-6-11 19:44
直接写个shell脚本 每半个小时执行一次 发现pingGoogle不通直接自动执行挂在就可以。没必要如此麻烦 ...

本地改成静态是永久性的,自动挂脚本是治标不治本,设置定时重启服务的人越多,越增加dhcp服务器的压力,会导致甲骨文的dhcp更容易掉
发表于 2023-6-11 20:34:03 | 显示全部楼层
所以为什么会掉
 楼主| 发表于 2023-6-11 23:07:29 | 显示全部楼层

掉是因为甲骨文dhcp有问题,机器获得不到正确的ip
发表于 2023-6-21 10:09:07 | 显示全部楼层
学习了,谢谢分享
发表于 2023-6-21 10:20:06 | 显示全部楼层
**璇玑 发表于 2023-6-11 19:59
本地改成静态是永久性的,自动挂脚本是治标不治本,设置定时重启服务的人越多,越增加dhcp服务器的压力, ...


我在netplan里面配置的静态地址也掉了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-17 21:31 , Processed in 0.071471 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表