修改主机Host配置(可用于屏蔽网站/广告、防止DNS劫持和污染)

hosts是系统文件(没有扩展名),主要用于解析域名到指定IP。

作用过程

有,获取配置的IP
浏览器
输入网址
Hosts配置有否
网址对应的域名
向服务器
IP发起请求
获取DNS服务器
的域名解析IP

为了提高网络请求效率,一般浏览器、操作系统、路由器都会有DNS缓存,获取DNS服务器的域名解析IP时,会先尝试从缓存中获取。

配置方式

文件位置:

  • Windows:c:\windows\system32\drivers\etc\hosts;这是系统盘在C盘的情况,如果是其他盘自行修改最前的盘符。
  • Linux或Mac OS:/etc/hosts

用文本编辑器打开可直接编辑。

格式:

# 格式:IP 域名

# 本机解析
127.0.0.1 localhost

#屏蔽百度
0.0.0.0 www.baidu.com

应用场景

  • 加快域名解析。因为不走DNS服务器,所以解析会非常快。
  • 屏蔽站点。将指定站点指向不存在或无法访问的IP,如127.0.0.1即本机。有些屏蔽视频广告,就是采用这个方式。
  • 防止DNS污染和劫持。域名在hosts中配置了IP,就不会从DNS服务器中解析IP,这样DNS多级服务器中任何污染,都不会影响到我们的解析。
  • 服务器环境中,还可以用于配置内部域名;该种方式下发内部域名和IP编排,可以避免通过扫描公网域名获取服务器IP后发起的攻击。

以上。感谢您的阅读。

<think>嗯,用户现在遇到了两个问题:一个是pip安装时出现SSL证书验证失败的错误,另一个是CentOS镜像列表无法解析主机名。我需要分别针对这两个问题给出解决方案。 首先看pip的SSL证书错误。可能的原因包括系统证书过期、pip版本过旧,或者环境中的代理设置干扰了SSL验证。用户可能是在使用pip安装包时遇到了CERTIFICATE_VERIFY_FAILED错误,这通常SSL证书有关。我需要先建议他们升级pip到最新版本,因为旧版本可能存在证书验证的问题。然后检查系统的CA证书包,比如在CentOS上,可能需要安装ca-certificates包并更新。另外,如果用户处于受限制的网络环境中,可能需要使用信任的镜像源,或者临时禁用SSL验证(虽然不推荐,但作为临时解决方案)。此外,设置全局的SSL证书路径也可能有效,比如使用--cert选项指定证书路径。 然后是CentOS镜像列表无法解析主机名的问题。用户之前已经配置过本地YUM源,但可能还存在残留的网络源配置,导致系统仍然尝试访问远程镜像站。需要确保所有的网络源配置文件都被禁用或删除,只保留本地源。此外,DNS解析问题也可能导致无法解析mirrorlist.centos.org,但既然用户已经使用本地源,应该不需要连接外网,所以重点检查YUM的配置文件是否正确,是否彻底移除了网络源。同时,检查/etc/resolv.conf中的DNS设置是否正确,或者尝试清除YUM缓存,重新生成元数据。 用户可能是在同时处理pipYUM的问题,这两个问题可能发生在同一环境中,比如在配置CentOS服务器时,同时需要安装Python包系统包。需要确保步骤清晰,分步骤解决,避免混淆。另外,用户可能希望长期解决这些问题,所以除了临时解决方案,还需要提供永久性的配置方法,比如更新CA证书、正确配置本地源镜像,以及设置正确的DNS服务器。 需要注意用户可能对Linux系统管理不太熟悉,所以给出的命令需要详细,并且解释每一步的作用,避免用户执行错误。同时,要提醒用户临时禁用SSL验证的风险,建议仅在测试环境中使用,并尽快修复根本问题。对于镜像解析问题,确认本地源配置正确后,可能还需要检查网络连接是否完全隔离,或者火墙设置是否阻止了本地访问。 最后,生成的相关问题需要围绕这两个主题,比如如何升级pip,如何配置本地镜像,如何处理DNS解析失败等,帮助用户进一步理解解决类似问题。</think>### Pip SSL证书验证失败解决方案(CERTIFICATE_VERIFY_FAILED) #### ▣ 核心原因分析 该错误表明Python包管理器无法验证SSL证书有效性[^3],常见于: 1. 系统根证书过期/缺失 2. 企业火墙中间人劫持 3. Python环境未正确配置证书路径 #### ▣ 分步解决方法 1. **强制升级pip工具链** ```bash curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py --trusted-host pypi.org --trusted-host files.pythonhosted.org ``` 2. **更新系统CA证书** ```bash yum reinstall ca-certificates -y update-ca-trust force-enable ``` 3. **指定可信镜像源(推荐清华源)** ```bash pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip config set install.trusted-host pypi.tuna.tsinghua.edu.cn ``` 4. **临时绕过验证(仅测试环境)** ```bash pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org [包名] ``` 5. **手动指定证书路径** ```bash export PIP_CERT=/etc/ssl/certs/ca-bundle.crt pip install [包名] --cert $PIP_CERT ``` --- ### CentOS镜像列表解析失败处理(cannot resolve host) #### ▣ 根本原因定位 该错误表明DNS解析失败[^5],但镜像列表请求应已通过本地源屏蔽,典型残留问题: 1. 未完全禁用`centos-linux-repos`包 2. `/etc/hosts`存在错误条目 3. 网络管理器强制覆盖DNS配置 #### ▣ 完整修复流程 1. **彻底移除网络源组件** ```bash rpm -e --nodeps centos-linux-repos rm -f /etc/yum.repos.d/*.repo ``` 2. **配置静态DNS解析(示例)** ```bash echo "nameserver 114.114.114.114" > /etc/resolv.conf chattr +i /etc/resolv.conf # 防止网络服务覆盖 ``` 3. **验证本地源隔离性** ```bash yum repolist --disablerepo='*' --enablerepo=local_* ``` 4. **强制刷新网络配置** ```bash systemctl restart NetworkManager nmcli dev show | grep DNS # 确认DNS配置 ``` --- ### 综合验证步骤 ```bash # 验证pip证书问题是否解决 pip search numpy --verbose 2>&1 | grep "SSL verification" # 检查YUM请求泄露(应无外部连接) strace -f -e trace=connect yum makecache 2>&1 | grep 'mirrorlist.centos.org' ``` --- ### 长期配置 1. **创建Python证书软链接** ```bash ln -s /etc/ssl/certs/ca-bundle.crt $(python -c "import ssl; print(ssl.get_default_verify_paths().openssl_cafile)") ``` 2. **配置YUM永久本地模式** ```bash echo "excludepkgs=centos-linux-repos" >> /etc/yum.conf ``` [^3]: Python 3.6+默认启用证书严格验证机制 [^5]: CentOS 8默认使用NetworkManager管理DNS配置 --相关问题-- 1. 如何检测Python环境的SSL证书验证路径? 2. 企业内网如何配置安全的pip镜像源? 3. NetworkManager传统network服务有何区别?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值