查看原文
其他

VMware 虚拟机外网连接问题排查

JiekeXu JiekeXu DBA之路 2024-03-03

作者 | JiekeXu

来源 |公众号 JiekeXu DBA之路(ID: JiekeXu_IT)

大家好,我是JiekeXu,很高兴又和大家见面了,今天和大家一起来怎么让虚拟机可以上外网?欢迎点击上方蓝字关注我,标星或置顶,更多干货第一时间到达!

今天使用 VMware 搭建完一台 CentOS7 的 Linux 虚拟机后,发现不能够使用 CRT 远程链接。报错“The remote system refused the connection”。



但是在虚拟机里打开一个终端便可以正常 ssh 远程登录。



相关设置如下

[root@localhost network-scripts]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:73:11:51 brd ff:ff:ff:ff:ff:ff inet 192.168.75.11/24 brd 192.168.75.255 scope global ens33 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe73:1151/64 scope link valid_lft forever preferred_lft forever3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether 52:54:00:42:ee:56 brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever preferred_lft forever4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000    link/ether 52:54:00:42:ee:56 brd ff:ff:ff:ff:ff:ff
sshd 配置如下
vim /etc/ssh/sshd_condigLoginGraceTime 0PermitRootLogin yesStrictModes yes#MaxAuthTries 6MaxSessions 50
UseDNS no
systemctl restart sshd.servicesystemctl stop firewalldsystemctl status firewalld

网卡配置如下

YPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="static"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="no"NAME="ens33"UUID="12550792-de37-403c-b072-7e9e81c7f97b"DEVICE="ens33"ONBOOT="yes"IPADDR=192.168.75.11GATEWAY=192.168.75.2NETMASK=255.255.255.0DNS1=114.114.114.114DNS2=8.8.8.8NM_CONTROLLED="no"

检查了 sshd 服务,又重新安装了 openssh 服务,‘yum install openssh -y’

[root@localhost ~]# ps -e | grep ssh 9168 ? 00:00:00 sshd 19105 ? 00:00:00 ssh-agent
[root@localhost ~]# /bin/systemctl status sshd.service● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2022-05-04 04:49:51 PDT; 1h 3min ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 9168 (sshd) Tasks: 1 CGroup: /system.slice/sshd.service └─9168 /usr/sbin/sshd -D
[root@localhost network-scripts]# cp /etc/selinux/config /etc/selinux/config_`date +"%Y%m%d_%H%M%S"`&& sed -i 's/SELINUX\=enforcing/SELINUX\=disabled/g' /etc/selinux/config[root@localhost network-scripts]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of three values:# targeted - Targeted processes are protected,# minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection.SELINUXTYPE=targeted

[root@localhost network-scripts]# setenforce 0[root@localhost network-scripts]# getenforcePermissive[root@localhost network-scripts]# sestatusSELinux status: enabledSELinuxfs mount: /sys/fs/selinuxSELinux root directory: /etc/selinuxLoaded policy name: targetedCurrent mode: permissiveMode from config file: disabledPolicy MLS status: enabledPolicy deny_unknown status: allowedMax kernel policy version: 31[root@localhost network-scripts]# reboot
[root@localhost ~]# sestatusSELinux status: disabled

相关服务均正常,Linux 防火墙也是关闭的状态,SELinux 也是关闭了,折腾了两个多小时,一层层抽丝剥茧,慢慢发现问题。


起初,网卡配置是基于以前 RAC 虚拟机配置修改的,但是再一次检查时发现少了一行“USERCTL=no”,而且首行 TYPE=“Ethernet” 由于粗心大意粘贴时少写一个字母“T”,重启网络服务时居然没有异常,也没能及时发现,将这两处错误修改之后,重启了主机也是无果。



USERCTL=no #是否允许非 root 用户控制该设备,设置为 no,只能用 root 用户更改。


附 Linux 网卡配置文件详解:

DEVICE=eth0 #指出设备名称NM_CONTROLLED=yes #network mamager的参数,实时生效,不需要重启ONBOOT=yes #设置为yes,开机自动启用网络连接IPADDR=192.168.75.12 #IP地址BOOTPROTO=none #设置为none禁止DHCP,设置为static启用静态IP地址,设置为dhcp 开启DHCP服务NETMASK=255.255.255.0 #子网掩码DNS1=8.8.8.8 #第一个dns服务器TYPE=Ethernet #网络类型为:EthernetGATEWAY=192.168.75.2 #设置网关DNS2=8.8.4.4 #第二个dns服务器IPV6INIT=no #禁止IPV6USERCTL=no #是否允许非root用户控制该设备,设置为no,只能用root用户更改HWADDR=00:0C:29:2C:E1:0F #网卡的Mac地址PREFIX=24DEFROUTE=yesIPV4_FAILURE_FATAL=yesNAME="eth0" #定义设备名称

最后,经过必应各种搜索,说 IP 冲突也会出现这种情况,于是乎检查了 VMware 配置的 IP 地址,net1 和 net8 查看了也都是 32.1 和 75.1 没有地址冲突,瞬间陷入了僵局,不知该如何查看了,休息片刻,补充弹药后继续排查。



终于想到了一个办法,既然此 75.11 的 IP 不能链接,那我改个 IP 试试呢,说改就改,将 75.11 改为 75.13 之后,重启网络,使用 CRT 便可以链接了。

[root@localhost network-scripts]# more /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="static"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="no"NAME="ens33"UUID="12550792-de37-403c-b072-7e9e81c7f97b"DEVICE="ens33"ONBOOT="yes"USERCTL=noIPADDR=192.168.75.13GATEWAY=192.168.75.2NETMASK=255.255.255.0DNS1=114.114.114.114DNS2=8.8.8.8NM_CONTROLLED="no"[root@localhost network-scripts]# [root@localhost network-scripts]# service network restartRestarting network (via systemctl): [ OK ]


到这里才恍然大悟了,真的是由于 IP 地址冲突引起的,前面只检查了 VMware 的 IP 地址设置,没有检查 VBOX 的 IP 地址设置,经查看发现 IP 地址确实是 192.168.75.11 。。。



地址冲突会导致 CRT 无法远程连接,报错却是拒绝连接,现在想来也是,75.11 是 VBOX 的虚拟地址,当然也就无法使用 CRT 远程连接,在虚拟机里面设置 IP 地址为 75.11 也不会有地址冲突,他两属于不同的局域网环境,在虚拟机里使用 ssh root@192.168.75.11 也不会出此局域网,地址不会有冲突。就这样一个小小的问题,花了两个多小时,还是粗心大意导致的,以后,这类问题要多多注意,在此记录一番,谨防下次再犯。



最终解决办法


将 VBOX 虚拟机地址修改为其他 IP 地址,例如 75.254 或者其他网段也可以,可根据实际情况设置。将 Linux 端 IP 地址改回 75 11 即可。



虚拟机外网访问配置


最后,说一下 Linux 虚拟机配置可以上网的方法,虚拟机设置里网络适配器选择【NAT】模式,查看宿主机无线适配器关于 net8 的网络配置,然后 VM 里选择【编辑】——>【虚拟网络编辑器】——>【DHCP设置】,子网 IP 需要和前面看到的在同一网段里,然后选择 DHCP 自动获取。



然后,网卡配置如下:

[root@localhost ~]# cd /etc/sysconfig/network-scripts/[root@localhost network-scripts]# more ifcfg-ens33 TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="static"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="no"NAME="ens33"UUID="12550792-de37-403c-b072-7e9e81c7f97b"DEVICE="ens33"ONBOOT="yes"USERCTL=noIPADDR=192.168.75.11GATEWAY=192.168.75.2NETMASK=255.255.255.0DNS1=114.114.114.114DNS2=8.8.8.8NM_CONTROLLED="no"

然后虚拟机便可以上网了。

[root@localhost network-scripts]# ping www.baidu.comPING www.a.shifen.com (39.156.66.14) 56(84) bytes of data.64 bytes from 39.156.66.14 (39.156.66.14): icmp_seq=1 ttl=128 time=9.37 ms64 bytes from 39.156.66.14 (39.156.66.14): icmp_seq=2 ttl=128 time=12.0 ms64 bytes from 39.156.66.14 (39.156.66.14): icmp_seq=3 ttl=128 time=13.8 ms^C--- www.a.shifen.com ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2004msrtt min/avg/max/mdev = 9.379/11.773/13.896/1.853 ms[root@localhost network-scripts]# ping cn.bing.comPING china.bing123.com (202.89.233.100) 56(84) bytes of data.64 bytes from 202.89.233.100 (202.89.233.100): icmp_seq=1 ttl=128 time=10.3 ms64 bytes from 202.89.233.100 (202.89.233.100): icmp_seq=2 ttl=128 time=9.55 ms64 bytes from 202.89.233.100 (202.89.233.100): icmp_seq=3 ttl=128 time=54.8 ms64 bytes from 202.89.233.100 (202.89.233.100): icmp_seq=4 ttl=128 time=11.2 ms^C--- china.bing123.com ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3005msrtt min/avg/max/mdev = 9.552/21.507/54.879/19.277 ms

参考链接

https://www.cnblogs.com/huangyj25/p/14896771.html



❤️ 欢迎关注我的公众号,来一起玩耍吧!!!

————————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
腾讯云:https://cloud.tencent.com/developer/user/5645107
————————————————————————————



Oracle 表碎片检查及整理方案

2021 年公众号历史文章合集整理

2020 年公众号历史文章合集整理

我的 2021 年终总结和 2022 展望

Oracle 查询表空间使用率超慢问题一则

国产数据库|TiDB 5.4 单机快速安装初体验

Oracle ADG 备库停启维护流程及增量恢复

Oracle 19c 使用数据泵如何导入导出 PDB 用户

继续滑动看下一个

VMware 虚拟机外网连接问题排查

JiekeXu JiekeXu DBA之路
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存