解决方法:1、用“cat /proc/sys/net/ipv4/ip_forward”查看“/proc”文件系统,确认系统是否打开ip转发功能;2、用“echo 1 > /proc/sys/net/ipv4/ip_forward”将文件内的内容由0修改为1即可打开ip转发功能;3、修改“/etc/sysctl.conf”文件内“ip_forward”的值可以永久修改ip转发。
本教程操作环境:linux7.3系统、docker19.03版、Dell G3电脑。
一直报unknown host,无法解析域名,来一起看看详细的解决方法:
解决方法
1、Linux系统默认没有打开IP转发功能,要确认IP转发功能的状态,
可以查看/proc文件系统,使用下面命令:
出于安全考虑,Linux系统默认是禁止数据包转发的。
所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包。配置Linux系统的ip转发功能,首先保证硬件连通,然后打开系统的转发功能
cat /proc/sys/net/ipv4/ip_forward,该文件内容为0,表示禁止数据包转发,1表示允许。
2、如果上述文件中的值为0,说明禁止进行IP转发;
如果是1,则说明IP转发功能已经打开,要想打开IP转发功能,可以直接修改上述文件:
echo 1 > /proc/sys/net/ipv4/ip_forward
把文件的内容由0修改为1。禁用IP转发则把1改为0。
3、上面的命令并没有保存对IP转发配置的更改,下次系统启动时仍会使用原来的值
要想永久修改IP转发,需要修改/etc/sysctl.conf文件,修改下面一行的值:
net.ipv4.ip_forward = 1
修改后可以重启系统来使修改生效,也可以执行下面的命令来使修改生效:
sysctl -p /etc/sysctl.conf
进行了上面的配置后,IP转发功能就永久开启了
扩展知识:
进入 Docker 容器后,在 hosts 文件中,配置域名解析。
# 进入 docker 容器 docker exec -it my_web /bin/bash # 修改 hosts 文件 vi /etc/hosts # 添加域名解析规则 192.168.99.100 example.test # 利用 ping 命令验证一下,是否可以 ping 通 ping example.test
如果你的 Docker 宿主主机没有 ping 命令,你可以安装一下;当然,如果你不想安装的话也无所谓,你可以通过其他的方式来验证域名解析是否已经得到解决。
需要注意的是:每次重启容器(服务)后,容器中的 /etc/hosts 文件新增的配置就会失效,故需要重新配置一下。
推荐学习:《docker视频教程》
以上是docker无法解析域名怎么办的详细内容。更多信息请关注PHP中文网其他相关文章!