Linux 桥接ping不通外网(特别是校园网) 解决方式及错误总结

虚拟机有三种网络连接方式:

桥接:你的虚拟机在你所在的局域网内相当于一台独立的主机,可以和局域网内的机器互通,当然也可以访问外网。

NAT:你的虚拟机的TCP/IP配置信息是由VMent8网卡的DHCP自动配置的,无法自行修改,所以只能和你的宿主机相互玩耍(你的宿主机能上外网,它也就能)。缺点是局域网中的其他主机和你的虚拟机不能相互访问。

Host-Only:传说中的自娱自乐模式,虚拟机的TCP/IP配置信息室友VMent1网卡的DHCP自动配置的,你的虚拟机之间可以互相通信,虚拟机和你的宿主机也可以互相通信,但是访问不了你宿主机所在的局域网,也就是说访问不了外网。

一般来说我们都使用桥接模式来让虚拟机联网,但如果你只是想联网并且懒的手动配置IP的话,也可以选择NAT模式,躺着联网,方便快捷全自动式配置。

简单的说下桥接步骤:

我用的是VMware,其他虚拟机操作也大同小异

1. 菜单栏-->编辑-->虚拟网络编辑器

选择桥接模式,然后桥接到一张宿主机可以上网的网卡,或者直接选择自动也可以。

2. 第一大坑,虚拟机的网络适配器选择桥接模式,上面的设备状态-->启动时连接这个勾一定要打上

其实在高版本的VMware中这个是自动打上的。。。

3. 开机如果网卡没启动就启动下eth0网卡:ifconfig eth0 up 

    如果你的宿主机的网卡是dhcp模式的也就是如下图一样是自动获取ip的

你的虚拟机也会自动配置好TCP/IP,如果不是请手动配置。

 

进入主题,错误总结

1. 手动配置IP的时候忘记配默认网关会出现以下错误

[root@Server ~]# ping 8.8.8.8
connect: 网络不可达

输入route

如下图所示是配置了Default Gateway的

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.4.16.0       *               255.255.252.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
default         10.4.16.1       0.0.0.0         UG    0      0        0 eth0

这个是没有的

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.4.16.0       *               255.255.252.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0

添加默认网关

route add default gw 10.4.16.1 (这个要和宿主机的网关一样,宿主机打开cmd输入ipconfig,就可以看到每块网卡的信息)

不过这个方法不是永久的添加了默认网关,关机重启或者重启网络服务的时候就失效了

永久添加默认网关

方法一:在vim /etc/networks下添加GATEWAY=10.4.16.1 然后重启网络服务service network restart

方法二:在vim /etc/sysconfig/network-scripts/ifcfg-eth0(你选择的网卡)下添加GATEWAY=10.4.16.1 然后重启网络服务service network restart

不过ifcfg-eth0文件的优先级是高于networks文件的,一般在ifcfg-eth0下面配置IP的时候直接把默认网关也配了。

方法三:vim /etc/sysconfig/static-routes(如果没有static-route就新建一个)下面添加any net default gw 10.4.16.1

2. DNS没有配置会出现下面的错误

[root@Server ~]# ping baidu.com
ping: unknown host baidu.com

配置DNS

方法一:和上文一样也是在vim /etc/networks中添加,添加语句nameserver 8.8.8.8和nameserver 114.114.114.114这个是谷歌的和电信的dns如果你要添加宿主机的也可以,在宿主机的网络和Internet设置-->以太网-->点你的网络-->拉到最下面可以看到宿主机的DNS

方法二:在vim /etc/sysconfig/network-scripts/ifcfg-eth0中添加DNS1=8.8.8.8和DNS2=114.114.114.114

方法三:如果宿主机和虚拟机(ifcfg-eth0中的BOOTPROTO=dhcp)都是dhcp模式,会自动设置DNS,如果配置了默认网关好像也会自动获取。

查看DNS

[root@centos ~]# cat /etc/resolv.conf 
; generated by /sbin/dhclient-script
nameserver 8.8.8.8
nameserver 114.114.114.114

总的来说只要在vim /etc/sysconfig/network-scripts/ifcfg-eth0这个配置文件下配置了IP地址,子网掩码,默认网关以及DNS

就可以了。

DEVICE=eth0(设备名)
HWADDR=00:0C:29:B9:99:5E(网卡硬件地址(MAC地址))
TYPE=Ethernet(网络类型)
UUID=d8904cd6-2bd4-435c-ac09-edd5d93232cf(通用唯一识别码)
ONBOOT=yes(是否开机启动)
NM_CONTROLLED=yes(network manager的参数,实时生效不需要重启)

BOOTPROTO=static(用指定的方式来获取地址,有static,dhcp,和none三种)
IPADDR=10.4.16.50(IP地址,要和宿主机在同一网段,一般自定义最后一个数字就好了)
GATEWAY=10.4.16.1(默认网关,和宿主机一样)
NETMASK=255.255.255.0(子网掩码,和宿主机一样)

BROADCAST=10.4.18.255(广播地址)

DNS1=8.8.8.8(第一个dns服务器)

DNS2=114.114.114.114(第二个dns服务器)

简单的配置只要配了红色字体就可以了。。。

修改完记得重启网络服务:service network restart

3. 防火墙影响

    关闭linux防火墙:service iptables stop

    禁止防火墙开机启动:chkconfig iptables off

    检查防火墙状态:service iptables status

    然后把宿主机的防火墙也关了,我的就是只有关闭宿主机的防火墙虚拟机才能ping通宿主机

有关校园网的问题

我在学校宿主机的ip是10.4.18.20而网关是10.4.16.1子网掩码是255.255.252.0

我把虚拟机的ip设置成10.4.18.n,会出现可以ping的通8.8.8.8,ping外网的时候网址的ip也可以解析出来,但就是不出现包的

信息必须Ctrl+c才能结束

我的解决方式是把10.4.18.n改成了10.4.16.n才能ping通

但是问题又出现了,这个n也有要求比如10.4.16.22就可以ping外网,而10.4.16.20就不行和10.4.18.n情况一样。。。

我猜是虚拟机发出的包少了什么配置数据,所以被校园网的防火墙给劫了,导致返回不了数据,因为我用虚拟机ping宿主机,当宿主机的防火墙没有关的时候也是这样,一直没有数据返回。

于是我就让宿主机脸上wifi结果一切畅通,丝滑流畅。。。校园网真的是坑。。。

为了论证我的猜想,我在虚拟机上安装了traceroute

traceroute baidu.com 路由追踪了下,看看是那个网关被拦截了,结果如下

traceroute to baidu.com (123.125.115.110), 30 hops max, 60 byte packets
 1  * * *
 2  10.1.0.117 (10.1.0.117)  1.871 ms  1.853 ms  3.254 ms
 3  10.1.1.22 (10.1.1.22)  32.760 ms  33.625 ms  33.590 ms
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * *^C

最后说个注意点:因为校园网是用NAT方式的,所以如果虚拟机用的是桥接方式那么设置IP地址的时候不能和校园网上已存在的IP地址一样,避免冲突。

另外附上traceroute的使用方法,用来检测网络在哪一跳上出问题还是不错的

https://jingyan.baidu.com/article/6d704a132dbf6e28da51ca6a.html

不过这里面traceroute的安装方式是Ubuntu的

也可以用yum安装:yum install -y traceroute

如果更加专业一点可以选择Wireshark这款抓包工具,功能更强大

### 已知问题分析 在使用 `cnpm` 安装 Vue CLI 或其相关依赖时,可能会遇到多种网络相关的问题。以下是可能的原因及其对应的解决方案: #### 1. **模块未找到** 当尝试通过 `cnpm install -g @vue/cli@4.0.3` 进行全局安装时,可能出现类似于 `Cannot find module 'fs/promises'` 的错误[^1]。这通常是因为 Node.js 版本较低,而该功能仅支持较新的版本。 #### 2. **SSL 证书过期** 执行 `cnpm install` 可能会因为 SSL 验证失败而导致报错 `Certificate has expired`[^4]。这是由于某些镜像源的证书配置不当引起的。 #### 3. **环境配置不正确** 如果开发者没有严格按照官方文档中的步骤完成初始设置,则可能导致后续命令(如 `npm run dev`)无法正常运行[^2]。 --- ### 解决方案 #### 方法一:升级 Node.js 和 NPM 确保本地使用的 Node.js 是最新稳定版(建议 v16.x 或更高)。可以访问 [Node.js 官网](https://nodejs.org/) 下载并重新安装。验证当前版本是否满足需求: ```bash node -v && npm -v ``` 对于低版本引发的功能缺失问题,更新工具链即可解决问题。 #### 方法二:禁用严格 SSL 模式 针对 SSL 证书失效的情况,可通过以下方式关闭严格的 HTTPS 校验规则: ```bash npm config set strict-ssl false ``` 此更改允许绕过潜在的安全隐患继续下载资源。需要注意的是,在生产环境中应谨慎启用此类选项以免引入额外风险。 #### 方法三:切换国内镜像源 有时国外服务器连接速度慢甚至中断也会造成类似的麻烦。推荐更换成淘宝提供的 CNPM 镜像服务作为临时替代品: ```bash npm config set registry https://registry.npmmirror.com/ ``` 之后再次尝试执行原指令看效果如何改善[^3]。 #### 方法四:清理缓存重试 偶尔残留的数据也可能干扰新请求的成功率。先清除旧记录再做一次完整的流程测试或许有所帮助: ```bash npm cache clean --force ``` 最后重复整个构建过程确认修复状况良好为止。 --- ### 示例脚本 为了便于理解上述调整的实际应用情况,这里给出一段综合性的操作指南代码片段供参考: ```bash # Step A: 更新基础软件栈至兼容状态 nvm install --lts # 如果有 nvm 支持的话优先考虑它来管理多版本共存关系 npm i -g npm@latest # Step B: 调整安全策略适应特殊场景下的宽松条件 npm config set strict-ssl false # Step C: 利用更稳定的第三方代理加速获取远程资产文件 npm config set registry=https://registry.npmmirror.com/ # Step D: 清理历史遗留垃圾数据防止污染现有工作区 npm cache verify || npm cache clear --force # Final Action: 实际部署目标组件库实例化动作 cnpm install vue-cli-service -D ``` > 注明:“Step X”仅为逻辑分组标记,并不代表实际语法组成部分,请忽略这些标签部分不影响最终结果解读。 --- ### 总结说明 综上所述,面对 cnpm 在处理 Vue 相关任务期间产生的各类异常现象,我们应当从多个角度出发逐一排查根本原因所在。无论是提升底层框架级别还是优化外部通信渠道参数设定都能有效缓解大部分常见难题的发生概率。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值