记录一下自己配置甲骨文云VPS网络踩的几个坑

2026-04-29 11:123阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

甲骨文云的配置页面实在是太复杂了, 自己来来回回折腾很久才配置好, 在这里记录一下下次可以直接参考.

1 虚拟云网络(VCN)

1.1 创建虚拟云网络(VCN)

  • 输入名称
  • IPv4 CIDR 块: 输入10.0.0.0/16
  • IPv6前缀: 开启 分配Oracle分配的IPv6/56前缀
  • 点击创建VCN

1.2 创建子网

  • 在新建的VCN详细信息页面中上方横向标签中选择子网, 点击创建子网
  • 输入名称
  • IPv4 CIDR 块: 输入10.0.0.0/24
  • IPv6 前缀:
    • 勾选 分配 Oracle 分配的 IPv6 /64 前缀
    • Oracle分配的IPv6地址: 填写从00到FF的HEX值, 如A1
  • 安全列表: 选择Default Security List for *****
  • 点击创建子网

1.3 安全列表

  • 点击进入新出现的子网, 进入子网详情页
  • 在上方横向标签中选择安全
  • 点击安全列表中的Default Security List for *****
  • 在安全列表详情页中上方横向标签中选择安全规则
  • 入站规则中点击添加入站规则
    • 想要开放端口IPv4: 源CIDR 0.0.0.0/0 IP协议 TCP 目的地端口范围 想要开放的端口号
    • 想要开放端口IPv6: 源CIDR ::/0 IP协议 TCP 目的地端口范围 想要开放的端口号

如果想要修改ssh端口, 需要提前在这里配置上新的端口号

1.4 预留(固定)公共IP

  • VNC详情页, 子网详情页cloud.oralce.com/networking/下的页面左侧的竖向菜单中选择IP管理
  • IP管理页面左侧的竖向菜单中选择预留的公共IP
  • 预留的公共 IPv4 地址页面中点击预留公共IP地址按钮
    • 输入名称
    • 点击预留公共IP地址按钮

1.5 把使用临时IP的实例改为使用固定IP

  • 进入实例的详情页, 在上方的横向标签列表中选择网络
  • 网络页面中的附加的VNIC列表中, 点击列表中第一项的名称连接, 名称一般是instance-yyyyMMdd-****, 旁边有一个主要VNIC小Badge
  • VNIC详情页上方水平的标签列表中选择IP管理
  • VNIC IP管理详情页中的IPv4地址列表中可以看到当前实例的内网IP和公共IP. 点击列表项最右边...三个点菜单按钮, 在弹出菜单中选择编辑
  • 将弹出抽屉中的公共IP类型改为没有公共IP, 然后点击更新按钮
  • 再次点击列表项右边...三个点菜单按钮, 在弹出菜单中选择编辑
  • 将弹出抽屉中的公共IP类型改为预留的公共IP, 然后在下方预留的IP地址中选择之前建立的保留IP.

2 让新建的实例接入Internet

建立好实例后ping不通, ssh连不上, 有可能是因为VCN的子网没有连接到Internet

  • 点击实例名称进入实例详情
  • 实例详情页上方的横向标签中选择网络
  • 网络页面最底下的快速操作部分, 将公共子网连接到Internet中点击连接按钮

3 Ubuntu 24修改SSH端口

3.1 开启传统SSH服务

Ubuntu 24中的SSH默认不自己监听端口, 而是让systemd监听22端口, 因此直接修改SSH配置文件该端口号无效, 需要先执行

# 禁用系统的SSH Socket监听 sudo systemctl disable --now ssh.socket # 启动传统的SSH监听服务 sudo systemctl enable --now ssh.service # 重启SSH服务 sudo systemctl restart ssh.service

可以使用sudo ss -tulpn | grep ssh查看SSH当前监听的端口

3.2 配置防火墙开启新端口

Ubuntu 24默认没有安装ufw, 并且初始iptables自带禁止所有端口的配置, 需要进行相应的修改

执行sudo iptables -L -n --line-numbers查看当前iptables配置, 输出的内容最开通大致是

Chain INPUT (policy DROP) num target prot opt source destination 1 ACCEPT 0 -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 ACCEPT 1 -- 0.0.0.0/0 0.0.0.0/0 3 ACCEPT 0 -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT 6 -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 REJECT 0 -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

其中第5条禁止了所有1-4规则没允许的连接, 执行sudo iptables -D INPUT 5删除第5条

然后执行sudo apt install ufw安装ufw, 安装完毕后执行

sudo ufw allow 你想开放的端口/tcp # 开机自动启动ufw sudo ufw enable # 重新加载ufw配置 sudo ufw reload

3.3 修改SSH配置文件

sudo nano /etc/ssh/sshd_config

将其中的#Port 22开头的#删掉, 然后将22改为想要配置的端口号

Ctrl+O然后回车保存, 再按Ctrl+X退出

执行sudo systemctl restart ssh重启SSH服务

然后新开一个终端, 在里面尝试用新的端口号登录ssh, 如果能成功登录, 则可以在Oracle安全列表中删除22端口的放行配置

4 服务器启用IPv6 Internet连接

如果服务器在test-ipv6.com等测试网站通不过IPv6测试, 可能是因为IPv6没有正确的配置

4.1 配置Oracle路由表

默认的Oracle路由可能只配置了IPv4 Internet连接, 需要手动添加IPv6 Internet连接.

虚拟云网络(VCN)详情页上方的横向标签中, 选择路由标签, 点击下方路由表中的Default Route Table for *****进入路由表详情页

路由表详情页上方的横向标签中选择路由规则标签, 查看下方的路由规则列表, 如果没有目的地::/0的项, 则需要手动添加, 点击添加路由规则

  • 协议版本: IPv6
  • 目标类型: Internet网关
  • 目的地CIDR块: ::/0
  • 目标Internet网关: 选择列表中有的网关, 使用前面快速创建生成的网关是ig-quick-action-IGW
  • 点击添加路由规则按钮

4.2 Docker容器使用IPv6

Docker容器想要使用IPv6 Internet连接, 需要将容器的network设置为host模式

4.3 绕过Ubuntu本地DNS代理

有时候在test-ipv6.com等网站测试IPv6会报错:

你的DNS服务器(可能由运营商提供)没有接入或没有配置IPv6, 将来这可能会妨碍你访问纯IPv6网站.

Ubuntu默认在本地跑一个小型DNS代理127.0.0.53, 有时候会造成IPv6解析兼容性问题. 另外Oracle内部还有一个DNS服务器, 如169.254.169.254, 这个DNS有时也会造成IPv6解析兼容性问题. 解决方法是在/etc/resolv.conf中强制写入我们想要设置的DNS服务器, 然后锁定文件, 防止其他进程篡改:

# 删除当前指向本地代理的符号链接 sudo rm /etc/resolv.conf # Google 的 IPv4 sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf' # Cloudflare 的 IPv4 sudo bash -c 'echo "nameserver 1.1.1.1" >> /etc/resolv.conf' # Google 的 IPv6 sudo bash -c 'echo "nameserver 2001:4860:4860::8888" >> /etc/resolv.conf' # 锁定文件 sudo chattr +i /etc/resolv.conf

4.4 增加UDP缓冲区

系统默认的208KB缓冲区有些小, 可以调大一些

# 临时增大 UDP 缓冲区到 2.5 MB sudo sysctl -w net.core.rmem_max=2500000 sudo sysctl -w net.core.wmem_max=2500000

为了让它重启后依然生效, 可以添加到系统配置中

echo "net.core.rmem_max=2500000" | sudo tee -a /etc/sysctl.conf echo "net.core.wmem_max=2500000" | sudo tee -a /etc/sysctl.conf sudo sysctl -p 网友解答:


--【壹】--:

可以学习学习大佬的流程,后续使用的时候测试一下


--【贰】--:

oci的网络配置确实复杂的出奇,完全就是给企业集群用的没考虑个人用户。aws azure gcp配置都远没这么复杂

标签:vps
问题描述:

甲骨文云的配置页面实在是太复杂了, 自己来来回回折腾很久才配置好, 在这里记录一下下次可以直接参考.

1 虚拟云网络(VCN)

1.1 创建虚拟云网络(VCN)

  • 输入名称
  • IPv4 CIDR 块: 输入10.0.0.0/16
  • IPv6前缀: 开启 分配Oracle分配的IPv6/56前缀
  • 点击创建VCN

1.2 创建子网

  • 在新建的VCN详细信息页面中上方横向标签中选择子网, 点击创建子网
  • 输入名称
  • IPv4 CIDR 块: 输入10.0.0.0/24
  • IPv6 前缀:
    • 勾选 分配 Oracle 分配的 IPv6 /64 前缀
    • Oracle分配的IPv6地址: 填写从00到FF的HEX值, 如A1
  • 安全列表: 选择Default Security List for *****
  • 点击创建子网

1.3 安全列表

  • 点击进入新出现的子网, 进入子网详情页
  • 在上方横向标签中选择安全
  • 点击安全列表中的Default Security List for *****
  • 在安全列表详情页中上方横向标签中选择安全规则
  • 入站规则中点击添加入站规则
    • 想要开放端口IPv4: 源CIDR 0.0.0.0/0 IP协议 TCP 目的地端口范围 想要开放的端口号
    • 想要开放端口IPv6: 源CIDR ::/0 IP协议 TCP 目的地端口范围 想要开放的端口号

如果想要修改ssh端口, 需要提前在这里配置上新的端口号

1.4 预留(固定)公共IP

  • VNC详情页, 子网详情页cloud.oralce.com/networking/下的页面左侧的竖向菜单中选择IP管理
  • IP管理页面左侧的竖向菜单中选择预留的公共IP
  • 预留的公共 IPv4 地址页面中点击预留公共IP地址按钮
    • 输入名称
    • 点击预留公共IP地址按钮

1.5 把使用临时IP的实例改为使用固定IP

  • 进入实例的详情页, 在上方的横向标签列表中选择网络
  • 网络页面中的附加的VNIC列表中, 点击列表中第一项的名称连接, 名称一般是instance-yyyyMMdd-****, 旁边有一个主要VNIC小Badge
  • VNIC详情页上方水平的标签列表中选择IP管理
  • VNIC IP管理详情页中的IPv4地址列表中可以看到当前实例的内网IP和公共IP. 点击列表项最右边...三个点菜单按钮, 在弹出菜单中选择编辑
  • 将弹出抽屉中的公共IP类型改为没有公共IP, 然后点击更新按钮
  • 再次点击列表项右边...三个点菜单按钮, 在弹出菜单中选择编辑
  • 将弹出抽屉中的公共IP类型改为预留的公共IP, 然后在下方预留的IP地址中选择之前建立的保留IP.

2 让新建的实例接入Internet

建立好实例后ping不通, ssh连不上, 有可能是因为VCN的子网没有连接到Internet

  • 点击实例名称进入实例详情
  • 实例详情页上方的横向标签中选择网络
  • 网络页面最底下的快速操作部分, 将公共子网连接到Internet中点击连接按钮

3 Ubuntu 24修改SSH端口

3.1 开启传统SSH服务

Ubuntu 24中的SSH默认不自己监听端口, 而是让systemd监听22端口, 因此直接修改SSH配置文件该端口号无效, 需要先执行

# 禁用系统的SSH Socket监听 sudo systemctl disable --now ssh.socket # 启动传统的SSH监听服务 sudo systemctl enable --now ssh.service # 重启SSH服务 sudo systemctl restart ssh.service

可以使用sudo ss -tulpn | grep ssh查看SSH当前监听的端口

3.2 配置防火墙开启新端口

Ubuntu 24默认没有安装ufw, 并且初始iptables自带禁止所有端口的配置, 需要进行相应的修改

执行sudo iptables -L -n --line-numbers查看当前iptables配置, 输出的内容最开通大致是

Chain INPUT (policy DROP) num target prot opt source destination 1 ACCEPT 0 -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 ACCEPT 1 -- 0.0.0.0/0 0.0.0.0/0 3 ACCEPT 0 -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT 6 -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 REJECT 0 -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

其中第5条禁止了所有1-4规则没允许的连接, 执行sudo iptables -D INPUT 5删除第5条

然后执行sudo apt install ufw安装ufw, 安装完毕后执行

sudo ufw allow 你想开放的端口/tcp # 开机自动启动ufw sudo ufw enable # 重新加载ufw配置 sudo ufw reload

3.3 修改SSH配置文件

sudo nano /etc/ssh/sshd_config

将其中的#Port 22开头的#删掉, 然后将22改为想要配置的端口号

Ctrl+O然后回车保存, 再按Ctrl+X退出

执行sudo systemctl restart ssh重启SSH服务

然后新开一个终端, 在里面尝试用新的端口号登录ssh, 如果能成功登录, 则可以在Oracle安全列表中删除22端口的放行配置

4 服务器启用IPv6 Internet连接

如果服务器在test-ipv6.com等测试网站通不过IPv6测试, 可能是因为IPv6没有正确的配置

4.1 配置Oracle路由表

默认的Oracle路由可能只配置了IPv4 Internet连接, 需要手动添加IPv6 Internet连接.

虚拟云网络(VCN)详情页上方的横向标签中, 选择路由标签, 点击下方路由表中的Default Route Table for *****进入路由表详情页

路由表详情页上方的横向标签中选择路由规则标签, 查看下方的路由规则列表, 如果没有目的地::/0的项, 则需要手动添加, 点击添加路由规则

  • 协议版本: IPv6
  • 目标类型: Internet网关
  • 目的地CIDR块: ::/0
  • 目标Internet网关: 选择列表中有的网关, 使用前面快速创建生成的网关是ig-quick-action-IGW
  • 点击添加路由规则按钮

4.2 Docker容器使用IPv6

Docker容器想要使用IPv6 Internet连接, 需要将容器的network设置为host模式

4.3 绕过Ubuntu本地DNS代理

有时候在test-ipv6.com等网站测试IPv6会报错:

你的DNS服务器(可能由运营商提供)没有接入或没有配置IPv6, 将来这可能会妨碍你访问纯IPv6网站.

Ubuntu默认在本地跑一个小型DNS代理127.0.0.53, 有时候会造成IPv6解析兼容性问题. 另外Oracle内部还有一个DNS服务器, 如169.254.169.254, 这个DNS有时也会造成IPv6解析兼容性问题. 解决方法是在/etc/resolv.conf中强制写入我们想要设置的DNS服务器, 然后锁定文件, 防止其他进程篡改:

# 删除当前指向本地代理的符号链接 sudo rm /etc/resolv.conf # Google 的 IPv4 sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf' # Cloudflare 的 IPv4 sudo bash -c 'echo "nameserver 1.1.1.1" >> /etc/resolv.conf' # Google 的 IPv6 sudo bash -c 'echo "nameserver 2001:4860:4860::8888" >> /etc/resolv.conf' # 锁定文件 sudo chattr +i /etc/resolv.conf

4.4 增加UDP缓冲区

系统默认的208KB缓冲区有些小, 可以调大一些

# 临时增大 UDP 缓冲区到 2.5 MB sudo sysctl -w net.core.rmem_max=2500000 sudo sysctl -w net.core.wmem_max=2500000

为了让它重启后依然生效, 可以添加到系统配置中

echo "net.core.rmem_max=2500000" | sudo tee -a /etc/sysctl.conf echo "net.core.wmem_max=2500000" | sudo tee -a /etc/sysctl.conf sudo sysctl -p 网友解答:


--【壹】--:

可以学习学习大佬的流程,后续使用的时候测试一下


--【贰】--:

oci的网络配置确实复杂的出奇,完全就是给企业集群用的没考虑个人用户。aws azure gcp配置都远没这么复杂

标签:vps