东莞搜狗推广网站诊断与优化的作用
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 服务,你可以按照以下步骤进行设置:
- 确保系统已经启用了 IP 转发功能
vim/etc/sysctl.conf 
   net.ipv4.ip_forward=1
 
保存文件后,使用以下命令使更改生效:
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 规则之后,将其保存并加载,以便规则在系统重启后仍然生效。
