热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

作者|JiekeXu来源|公众号JiekeXuDBA之路(ID:JiekeXu_IT)大家好,我是JiekeXu,很高兴又和大家见面了,今

46d8dc69074fe49dd9dbeec9a834b343.gif

作者 | JiekeXu

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

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

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

97a36ecef96a30face6cadcea4915c49.png

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

7759ef72561fca8dc8a86be3a8fe5f91.png


相关设置如下

[root@localhost network-scripts]# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:73:11:51 brd ff:ff:ff:ff:ff:ffinet 192.168.75.11/24 brd 192.168.75.255 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe73:1151/64 scope link valid_lft forever preferred_lft forever
3: virbr0: mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:42:ee:56 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: virbr0-nic: mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:42:ee:56 brd ff:ff:ff:ff:ff:ff

sshd 配置如下

vim /etc/ssh/sshd_condig
LoginGraceTime 0
PermitRootLogin yes
StrictModes yes
#MaxAuthTries 6
MaxSessions 50UseDNS nosystemctl restart sshd.service
systemctl stop firewalld
systemctl 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.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’

[root@localhost ~]# ps -e | grep ssh9168 ? 00:00:00 sshd19105 ? 00:00:00 ssh-agent[root@localhost ~]# /bin/systemctl status sshd.service
● sshd.service - OpenSSH server daemonLoaded: 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 agoDocs: man:sshd(8)man:sshd_config(5)Main PID: 9168 (sshd)Tasks: 1CGroup: /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”,重启网络服务时居然没有异常,也没能及时发现,将这两处错误修改之后,重启了主机也是无果。

a00e3c281a771963dc53030d0a6094a0.png

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 #网络类型为: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 没有地址冲突,瞬间陷入了僵局,不知该如何查看了,休息片刻,补充弹药后继续排查。

1226e0c006dd42f2f61bc104ae70db47.png

终于想到了一个办法,既然此 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=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 ]

5a991c69b7e639dfd11aec2fce211ffa.png

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

1f789f92d571e56f6925aafe986414e8.png

aff582f9210bbd3ade17cd6464fe3e42.png

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

be14fff7d244f818a45d91aa5bee352d.png


最终解决办法

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

66aa5f0c81dc9047956532a24fab1e9b.png

7935b5745346997115eb3fbda241a5f4.png


虚拟机外网访问配置

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

0df2ceaba4abe7fe238debad60f73777.png

43d63092303b726a35866f734d60755f.png

然后,网卡配置如下:

[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"

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

[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


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

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

01f6bfa57f0e6f9452591a81c28c7ad5.gif

Oracle 表碎片检查及整理方案2021 年公众号历史文章合集整理
2020 年公众号历史文章合集整理
我的 2021 年终总结和 2022 展望Oracle 查询表空间使用率超慢问题一则国产数据库|TiDB 5.4 单机快速安装初体验Oracle ADG 备库停启维护流程及增量恢复
Oracle 19c 使用数据泵如何导入导出 PDB 用户

6c96a3fe22cfcd89153eade8ceaff3a7.png


推荐阅读
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 1Lock与ReadWriteLock1.1LockpublicinterfaceLock{voidlock();voidlockInterruptibl ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了源码分析--ConcurrentHashMap与HashTable(JDK1.8)相关的知识,希望对你有一定的参考价值。  Concu ... [详细]
  • oracle恢复失败,RMAN数据库恢复失败解决一例
    问题:这是一个从RAC环境的数据库的RAMN备份恢复到一个单机数据库的操作。当恢复数据文件和恢复正常,但在open数据库时出报下面的错误。--rman备 ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
author-avatar
陈协莹隆心
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有