腾讯云服务器安全组端口开放,容器转发端口不能用

在Docker环境中,一个容器的9090端口无法访问,虽然SSH和ping是正常的。通过netstat检查发现端口未运行。解决方法是启用内核的IP转发,通过运行sysctl-wnet.ipv4.ip_forward=1临时开启,或者在/etc/sysctl.conf中配置并使用sysctl-p加载设置,以实现永久生效。
摘要由CSDN通过智能技术生成

安全组端口全开放,能ping通,ssh能通,但是访问9090端口不通。

查netstat -aput,发现端口没有运行,

容器查看如下:

[root@VM-16-17-centos ~]$ docker ps
CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                                       NAMES
b9580db27fd7   test/tomcat:1.0   "/bin/sh -c '/usr/lo…"   34 minutes ago   Up 34 minutes   0.0.0.0:9090->8080/tcp, :::9090->8080/tcp   tomcat01

然后添加内核转发规则,就可以操作了

sysctl -w net.ipv4.ip_forward=1

补充知识点:

       sysctl配置与显示在/proc/sys目录中的内核参数.可以用sysctl来设置或重新设置联网功能,如IP转发、IP碎片去除以及源路由检查等。用户只需要编辑/etc/sysctl.conf文件,即可手工或自动执行由sysctl控制的功能。

  命令格式:

    sysctl [-n] [-e] -w variable=value

    sysctl [-n] [-e] -p <filename> (default /etc/sysctl.conf)

    sysctl [-n] [-e] -a

参数

-w   临时改变某个指定参数的值,如
     sysctl -w net.ipv4.ip_forward=1
-a   显示所有的系统参数
-p   从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载

常见设置,开启内核端口转发

一、临时生效,重启失效
1、sysctl -w net.ipv4.ip_forward=1
2、echo 1 > /proc/sys/net/ipv4/ip_forward
二、永久生效
修改 /etc/sysctl.conf,增加一条:net.ipv4.ip_forward = 1
要想是更改生效,你需要执行以下指令:
sysctl -p /etc/sysctl.conf

在红帽系列的发行版上可以通过重启网络服务使之生效:
service network restart

而在debian/ubuntu系列的发行版则用这样的命令:
/etc/init.d/procps.sh restart

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值