前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VMware 虚拟机外网连接问题排查

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

作者头像
JiekeXu之路
发布2022-05-17 10:44:08
1.4K0
发布2022-05-17 10:44:08
举报
文章被收录于专栏:JiekeXu之路JiekeXu之路

作者 | JiekeXu

大家好,我是JiekeXu,很高兴又和大家见面了,今天和大家一起来怎么让虚拟机可以上外网?

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

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

相关设置如下

代码语言:javascript
复制
[root@localhost network-scripts]# ip a
1: 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 forever
2: 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 forever
3: 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 forever
4: 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 配置如下

代码语言:javascript
复制
vim /etc/ssh/sshd_condig
LoginGraceTime 0
PermitRootLogin yes
StrictModes yes
#MaxAuthTries 6
MaxSessions 50

UseDNS no

systemctl restart sshd.service
systemctl stop   firewalld
systemctl status firewalld

网卡配置如下

代码语言:javascript
复制
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.11
GATEWAY=192.168.75.2
NETMASK=255.255.255.0
DNS1=114.114.114.114
DNS2=8.8.8.8
NM_CONTROLLED="no"

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

代码语言:javascript
复制
[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]# getenforce
Permissive
[root@localhost network-scripts]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          disabled
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      31
[root@localhost network-scripts]# reboot

[root@localhost ~]# sestatus
SELinux status:                 disabled

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

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

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

附 Linux 网卡配置文件详解:

代码语言:javascript
复制
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 #网络类型为:Ethernet
GATEWAY=192.168.75.2 #设置网关
DNS2=8.8.4.4 #第二个dns服务器
IPV6INIT=no #禁止IPV6
USERCTL=no #是否允许非root用户控制该设备,设置为no,只能用root用户更改
HWADDR=00:0C:29:2C:E1:0F #网卡的Mac地址
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
NAME="eth0" #定义设备名称

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

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

代码语言:javascript
复制
[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=no
IPADDR=192.168.75.13
GATEWAY=192.168.75.2
NETMASK=255.255.255.0
DNS1=114.114.114.114
DNS2=8.8.8.8
NM_CONTROLLED="no"
[root@localhost network-scripts]# 
[root@localhost network-scripts]# service network restart
Restarting 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 自动获取。

然后,网卡配置如下:

代码语言:javascript
复制
[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=no
IPADDR=192.168.75.11
GATEWAY=192.168.75.2
NETMASK=255.255.255.0
DNS1=114.114.114.114
DNS2=8.8.8.8
NM_CONTROLLED="no"

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

代码语言:javascript
复制
[root@localhost network-scripts]# ping www.baidu.com
PING 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 ms
64 bytes from 39.156.66.14 (39.156.66.14): icmp_seq=2 ttl=128 time=12.0 ms
64 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 2004ms
rtt min/avg/max/mdev = 9.379/11.773/13.896/1.853 ms
[root@localhost network-scripts]# ping cn.bing.com
PING 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 ms
64 bytes from 202.89.233.100 (202.89.233.100): icmp_seq=2 ttl=128 time=9.55 ms
64 bytes from 202.89.233.100 (202.89.233.100): icmp_seq=3 ttl=128 time=54.8 ms
64 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 3005ms
rtt min/avg/max/mdev = 9.552/21.507/54.879/19.277 ms

参考链接

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JiekeXu之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 相关设置如下
  • sshd 配置如下
  • 网卡配置如下
  • 附 Linux 网卡配置文件详解:
  • 最终解决办法
  • 虚拟机外网访问配置
  • 参考链接
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档