美文网首页
ubuntu 配置iptables代理转发功能

ubuntu 配置iptables代理转发功能

作者: 笙箫竽笛 | 来源:发表于2021-02-18 16:19 被阅读0次

    基础知识

    iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。

    iptables是按照规则来办事的,我们就来说说规则(rules),规则其实就是网络管理员预定义的条件,规则一般的定义为”如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的主要工作就是添加、修改和删除这些规则。

    数据包流程 数据经过防火墙的流程

    两种方式的代理

    1、本机端口代理

    # 数据从端口80转发8080
    $ sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
    

    2、外部数据转发

    $ sudo nano /etc/sysctl.conf
    # net.ipv4.ip_forward=1 
    # 打开代理转发功能,从上图可以看出,需要经过FORWORD
    # 设置net.ipv4.ip_forward=1后需要重启系统才能生效
    # 如果不想重启系统,也可以如下设置
    $ sudo sysctl -w net.ipv4.ip_forward=1 
    
    # 数据从代理机器123.206.219.160:80 转发到 123.206.219.164:8080
    $ sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 123.206.219.164:8080
    $ sudo iptables -t nat -A POSTROUTING -d 123.206.219.164 -p tcp --dport 8080 -j SNAT --to-source 123.206.219.160
    
    # 如果【代理机器】位于内部局域内,--to-source 需要指向【代理机器】局域网地址【192.168.1.233】,如下所示:
    $ sudo iptables -t nat -A POSTROUTING -d 123.206.219.164 -p tcp --dport 8080 -j SNAT --to-source 192.168.1.233
    

    相关文章

      网友评论

          本文标题:ubuntu 配置iptables代理转发功能

          本文链接:https://www.haomeiwen.com/subject/ggkfnktx.html