如何设置iptables,让网络流量转发给内部容器mysql
  2KFP6HqsvpD5 2023年11月02日 47 0


1.创建一个mysql ,无法外部访问

docker run -d --name mysql_container -e MYSQL_ROOT_PASSWORD=liuyunshengsir -v /path/to/mysql_data:/var/lib/mysql  mysql

2.设置规则外部直接可访问

要使用 iptables 将网络流量转发给内部容器中的 MySQL 服务,你可以按照以下步骤进行设置:

  1. 确保系统已经启用了 IP 转发功能
    vim /etc/sysctl.conf
net.ipv4.ip_forward=1

保存文件后,使用以下命令使更改生效:

sudo sysctl -p
  1. 设置 NAT 规则来实现端口转发。假设 MySQL 容器监听的端口是 3306,并且外部访问的端口是 8888,你可以使用以下命令来添加 iptables 规则:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 13306 -j DNAT --to-destination 172.17.0.2:3306

替换 <内部容器的IP地址> 为你的 MySQL 容器实际的 IP 地址。

  1. 允许转发的数据包通过防火墙。使用以下命令启用转发:
sudo iptables -A FORWARD -p tcp --dport 13306 -d <内部容器的IP地址> -j ACCEPT

替换 <内部容器的IP地址> 为你的 MySQL 容器实际的 IP 地址。

  1. 如果你的系统上启用了防火墙(例如 UFW),请确保允许相应的端口通过防火墙。例如,在 UFW 中,你可以运行以下命令开放 13306端口:
sudo ufw allow 13306

这将允许外部主机连接到你的系统的 13306端口。

完成上述步骤后,当有外部请求进入系统的 13306端口时,iptables 将会将流量转发给内部容器中 MySQL 服务的 3306 端口,从而实现端口转发。请确保你的 MySQL 容器已经正确配置并监听了相应的端口。

3.永久保存规则

在 CentOS 系统上,可以使用以下方法来永久设置 iptables 规则:

  1. 使用 iptables 命令保存和加载规则:这是一种简单的方法,当系统重启时会自动加载保存的规则。
  • 配置所需的 iptables 规则。例如,添加规则:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -j DROP
  • 保存规则到文件:
sudo service iptables save
  • 这将把当前的 iptables 规则保存到 /etc/sysconfig/iptables 文件中。
  • 当系统启动时,iptables 服务将自动加载保存的规则。
  1. 使用 iptables-services 包:这是一个包含 iptables 服务的软件包,可让你更方便地管理 iptables 规则。
  • 首先,确保已安装 iptables-services 包:
sudo yum install iptables-services
  • 启动 iptables 服务,并设置为在系统启动时自动启动:
sudo systemctl start iptables
sudo systemctl enable iptables
  • 配置所需的 iptables 规则。例如,添加规则:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -j DROP
  • 保存规则到文件:
sudo service iptables save
  • 这将把当前的 iptables 规则保存到 /etc/sysconfig/iptables 文件中。
  • 当系统启动时,iptables 服务将自动加载保存的规则。

确保在配置 iptables 规则之后,将其保存并加载,以便规则在系统重启后仍然生效。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
2KFP6HqsvpD5