linux 端口转发:iptables

端口转发

iptables 是一个配置 Linux 内核 防火墙 的命令行工具,是 netfilter 项目的一部分。
术语 iptables 也经常代指该内核级防火墙。
iptables 用于 ipv4,ip6tables 用于 ipv6。
需要root账户执行以下操作

应用场景

外网通过端口转发的方式;访问仅内网有访问权限的mySql;

1.开启配置 iptables

临时修改:

$ echo 1 >/proc/sys/net/ipv4/ip_forward

默认值0是禁止ip转发,修改为1即开启ip转发功能。

2.简单转发

#-- 把访问本机 8091 端口的请求转发到 8090端口
$ iptables -t nat -A PREROUTING -p tcp --dport 8091 -j REDIRECT --to-ports 8090
#-- 把访问本机 8093 端口的请求转发到 192.168.1.3 的 8090端口
$ iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8093 -j DNAT --to 192.168.1.3:8090

$ service iptables save
$ service iptables restart

3.配置转发mySql

mySql:服务器 : 192.168.1.3:3306
配置转发的机器:有mySql访问权限,外网IP(193.168.1.2),内网IP(192.168.1.2),可用端口(3307)

$ echo 1 >/proc/sys/net/ipv4/ip_forward
$ iptables -t nat -A PREROUTING -p tcp --dport 3307 -j DNAT --to-destination 192.168.1.3:3306
$ iptables -t nat -A POSTROUTING -d 192.168.1.3 -p tcp --dport 3306 -j SNAT --to 192.168.1.2
$ service iptables save
$ service iptables restart

访问mySql

-- 外网连接mysql 也可通过 navicat 等工具链接
mysql -h193.168.1.2 -uroot -proot -P 3307
-- 其它没有mySql访问权限的机器 内网访问
mysql -h192.168.1.2 -uroot -proot -P 3307

推荐阅读更多精彩内容

  • 注解;来自某位大神的详解,做个笔记。 iptables防火墙简介 Netfilter/Iptables(以下简称I...
    王哲理阅读 1,878评论 0 11
  • iptables简介 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防...
    yshenhn阅读 13,111评论 1 33
  • 防火墙的概念iptables的简介iptables命令网络防火墙NATfirewalld服务 一、防火墙的概念 (...
    哈喽别样阅读 696评论 0 1
  • iptabels是与Linux内核集成的包过滤防火墙系统,几乎所有的linux发行版本都会包含iptables的功...
    随风化作雨阅读 1,146评论 1 13
  • 一 终于考完了。 日日夜夜煎熬的日子,终于过了。 紧绷的神经好像一下子全散开了一样。 我又开始放纵自己了。 不规律...
    一隻兔几阅读 78评论 7 3