免费地方网站,残联网站建设,网站开发要求,未成年做网站1.创建一个mysql #xff0c;无法外部访问
docker run -d --name mysql_container -e MYSQL_ROOT_PASSWORDliuyunshengsir -v /path/to/mysql_data:/var/lib/mysql mysql2.设置规则外部直接可访问
要使用 iptables 将网络流量转发给内部容器中的 MySQL 服务#xff0c;你可…1.创建一个mysql 无法外部访问
docker run -d --name mysql_container -e MYSQL_ROOT_PASSWORDliuyunshengsir -v /path/to/mysql_data:/var/lib/mysql mysql
2.设置规则外部直接可访问
要使用 iptables 将网络流量转发给内部容器中的 MySQL 服务你可以按照以下步骤进行设置
确保系统已经启用了 IP 转发功能 vim /etc/sysctl.conf net.ipv4.ip_forward1保存文件后使用以下命令使更改生效
sudo sysctl -p设置 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 地址。
允许转发的数据包通过防火墙。使用以下命令启用转发 sudo iptables -A FORWARD -p tcp --dport 13306 -d 内部容器的IP地址 -j ACCEPT替换 内部容器的IP地址 为你的 MySQL 容器实际的 IP 地址。 如果你的系统上启用了防火墙例如 UFW请确保允许相应的端口通过防火墙。例如在 UFW 中你可以运行以下命令开放 13306端口 sudo ufw allow 13306这将允许外部主机连接到你的系统的 13306端口。
完成上述步骤后当有外部请求进入系统的 13306端口时iptables 将会将流量转发给内部容器中 MySQL 服务的 3306 端口从而实现端口转发。请确保你的 MySQL 容器已经正确配置并监听了相应的端口。
3.永久保存规则
在 CentOS 系统上可以使用以下方法来永久设置 iptables 规则 使用 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-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 规则之后将其保存并加载以便规则在系统重启后仍然生效。