MacOS使用PF实现iptables的端口转发功能

这篇具有很好参考价值的文章主要介绍了MacOS使用PF实现iptables的端口转发功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

准备web服务

使用Flask启动一个简单的web服务

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run(port=5000)

浏览器访问:http://127.0.0.1:5000/

通过pf实现端口转发

将所有端口8080的请求,都转发到127.0.0.1:5000,类似Nginx的反向代理

1、开启IPv4 的转发

# 开启 IPv4 的转发
$ sudo sysctl -w net.inet.ip.forwarding=1

# 查看当前端口转发功能状态
sudo sysctl -a | grep forward
net.inet.ip.forwarding: 1
net.inet6.ip6.forwarding: 0

2、添加转发配置文件

sudo vim /etc/pf.anchors/http
rdr pass on lo0 inet proto tcp from any to any port 8080 -> 127.0.0.1 port 5000
rdr pass on en0 inet proto tcp from any to any port 8080 -> 127.0.0.1 port 5000

查看到的网络名称

$ ifconfig -a
# lo0 是本机ipv4地址 eg: 127.0.0.1
# en0 是局域网ipv4地址 eg: 192.168.0.100

检查正确性

$ sudo pfctl -vnf /etc/pf.anchors/http

3、修改pf配置文件

sudo vim /etc/pf.conf

增加如下配置

# 在 rdr-anchor "com.apple/*" 下添加
rdr-anchor "http-forwarding"

# 在 load anchor "com.apple" from "/etc/pf.anchors/com.apple" 下添加
load anchor "http-forwarding" from "/etc/pf.anchors/http"

重启pf服务

sudo pfctl -ef /etc/pf.conf

浏览器访问:http://127.0.0.1:8080/文章来源地址https://www.toymoban.com/news/detail-739504.html

其他命令

# 启用pf服务
$ sudo pfctl -e

# 强制重启PF服务
$ sudo pfctl -E

# 关闭PF
$ sudo pfctl -d

参考文章

  • https://man.openbsd.org/pfctl
  • https://man.openbsd.org/pf.conf
  • Mac下使用PF进行端口转发和防火墙配置(类似Linux的iptables)

到了这里,关于MacOS使用PF实现iptables的端口转发功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux: 使用iptables阻断到某个ip某个端口的访问

    要使用 Linux 中的 iptables 阻断到特定 IP 地址的特定端口的访问,我们可以遵循以下步骤。这里以阻断到 IP 地址 192.168.1.100 的端口 80 为例: 打开终端 :首先,我们需要打开 Linux 系统的终端。 使用 iptables :使用以下命令来添加一条规则,阻断到指定 IP 和端口的访问。 这里的

    2024年02月05日
    浏览(42)
  • 在Linux系统中设置HTTP隧道以实现网络穿透和端口转发

    在数字化世界中,网络穿透和端口转发成为了许多开发者和系统管理员必备的技能。而在Linux系统中,通过设置HTTP隧道,我们可以轻松实现这一目标,让我们的服务即便在内网环境中也能被外部世界所访问。 那么,如何在Linux系统中设置HTTP隧道以实现网络穿透和端口转发呢?

    2024年02月21日
    浏览(46)
  • linux启用NAT功能,双网卡共享网络,iptables简单实现

    最近在研究linux双网卡共享网络的情况 简单来说就是一台linux有两块网卡,比如eth0及eth1,eth0可以正常连接外网,eth1连接内部网络,那么可以通过iptables实现eth1内部网络上的设备共享eth0的网络,即linux充当网关的作用 此处研究网络上的教程一大堆,利用iptables增加了很多条规

    2023年04月08日
    浏览(33)
  • Linux iptables配置开启80端口

    在Linux服务器上,我们可以使用iptables工具来配置和管理网络防火墙规则。如果你想要开启80端口,以便在服务器上运行Web服务(如HTTP),你可以按照以下步骤进行配置。 首先,你需要通过终端以root权限登录到服务器。然后,执行以下命令以开启80端口: 这个命令将在INPUT链

    2024年02月04日
    浏览(36)
  • 学习资料|SSH隧道端口转发功能详解

    ssh隧道大致可以分为3种,分别为本地端口转发,远程端口转发,动态端口转发,本文将让你彻底搞懂这3个转发的命令表达形式,让你能够灵活运用解决生活中的各种特殊场景。 如果你正在使用mobaxterm、xshell、secureCRT、putty这类工具,可直接可视化界面简单配置即可使用,若

    2024年02月10日
    浏览(50)
  • 【linux】iptables和ufw禁用IP和端口

    有时候服务器,为了安全需要,会限制某些ip和端口对服务器的访问。那具体该如何配置呢?本文带你解决。 🈲端口 🈲IP 保存配置 sudo service iptables save 实测这条命令行不通,报错:iptables: unrecognized service 下面这条可以 UFW (Uncomplicated Firewall)是Ubuntu 自带的防火墙配置工具 。

    2024年02月12日
    浏览(38)
  • linux中iptables 设置特定IP访问指定端口

    iptables 设置特定IP访问指定端口 测试telnet 1、查询规则编号: 可以看到禁止访问8075的规则编号为1 2、删除指定规则编号的规则(如删除编号为1的规则) 1、添加规则:禁止所有IP访问8075 2、添加规则:允许127.0.0.1访问8075 3、测试: 4、保存规则

    2024年02月07日
    浏览(50)
  • 探索物联网HMI的端口转发和NAT功能

    端口转发和NAT功能常用于内网穿透,实现内部网络和外部网络之间的数据传输,工作人员通过外部网络便可安全访问到内网设备,实现设备的状态监测。接下来小编将为大家介绍支持端口转发和NAT功能的虹科物联网HMI是如何帮助用户实现内网穿透。 虹科物联网HMI提供基于HT

    2024年02月16日
    浏览(34)
  • Java使用Netty实现端口转发&Http代理&Sock5代理服务器

    这里总结整理了之前使用Java写的端口转发、Http代理、Sock5代理程序,放在同一个工程中,方便使用。 开发语言:Java 开发框架:Netty 端口转发: HTTP代理服务器,支持账号密码认证 Sock5代理服务器,支持账号密码认证 支持连接后端时直接连接或采用代理连接,也后端代理连接认

    2024年01月25日
    浏览(53)
  • 使用nginx实现请求转发的功能

    nginx(反向代理服务器)主要功能 请求转发 负载均衡 动静分离 配置nginx,实现请求转发的功能 找到nginx配置文件 在nginx.conf中进行配置 (1)最好将nginx默认的80端口修改为81 (2)配置nginx转发规则 (3)具体配置 修改config/dev.env.js中的BASE_API 重启nginx

    2024年02月11日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包