首页 > 系统相关 >MacOS使用PF实现iptables的端口转发功能

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

时间:2023-11-05 20:36:04浏览次数:72  
标签:iptables __ MacOS 0.1 sudo etc pf 转发 PF



目录

  • 准备web服务
  • 通过pf实现端口转发
  • 其他命令
  • 参考文章


准备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/

其他命令

# 启用pf服务
$ sudo pfctl -e

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

# 关闭PF
$ sudo pfctl -d

参考文章



标签:iptables,__,MacOS,0.1,sudo,etc,pf,转发,PF
From: https://blog.51cto.com/mouday/8195031

相关文章

  • Dijkstra, RIP, OSPF:RIP算法
    这部分参考王道bilibili视频:https://www.bilibili.com/video/BV19E411D78Q?p=56&vd_source=63764dd9776224d187bddddb05bf9f3f 例题-1:R6、R4相邻,如左图所示。现在R4的路由表更新为右上表,现在让你写出R6更新后的路由表。  例题-2:这道题中向量6个元素分别代表某个路......
  • 基于iptables防火墙堵漏
    之前在网上流传个段子:发现自己电脑被入侵,最有效的办法是即拔掉网线~虽然只是个段子,却说明一旦机器发现漏洞被入侵,阻断入侵刻不容缓,无论对个人电脑和业务服务器都是如此。商业服务器虽然有各种防护措施,但是也不能保证百分百安全,一旦被入侵处理起来可不能直接拔网线。具体处理措施......
  • 深入理解WPF中的依赖注入和控制反转
    在WPF开发中,依赖注入(DependencyInjection)和控制反转(InversionofControl)是程序解耦的关键,在当今软件工程中占有举足轻重的地位,两者之间有着密不可分的联系。今天就以一个简单的小例子,简述如何在WPF中实现依赖注入和控制反转,仅供学习分享使用,如有不足之处,还请指正。 什么是依......
  • 保姆级教学之解决Windows系统下shutil zipfile解压缩中文乱码问题
    使用shutil,zipfile模块解压文件,若待解压文件路径中带有中文,则会出现一下乱码情况。解决方案:直接对python库文件zipfile.py进行修改即可。以本人正在使用的Python3.10.4版为例。以下时具体操作流程。1、找到python所在文件路径如不知道python装在哪里,可以利用python的内置模块sys的s......
  • OSPF高级配置
    路由重分发从一个AS学习路由,然后向另一个AS广播的路由器上进行配置。路由重分发的考虑①度量值②管理距离重分发到OSPF域中路由的路径类型①类型1的外部路径(E1)②类型2的外部路径(E2)NSSANSSA:非纯末梢区域NSSA非纯末梢区域配置命令配置命令:Router(config-router)#area  area-id  n......
  • [MacOS]Ansible-HelloWorld
    安装pipinstallansible手动创建ansible.cfgsudomkdir/etc/ansible/ansible.cfg查看ansible配置信息ansible--version创建hosts文件cd/etc/ansible/sudotouchhostssudovihosts添加主机IP127.0.0.1ansible是基于ssh协议实现的,所以其配置公私......
  • uni.uploadFile和this.$refs.signatureRef.canvasToTempFilePath
    canvasToTempFilePath生成的图片是临时h5路径可用于临时回显,如果图片的路径要上传接口,需要使用uni.uploadFile来将图片上传到服务器//我用uniapp做app签名时写的代码片段,上传完服务器之后的路径就可以传到后端给的接口啦,然后在查询的时候就可以通过订单返回的图片路径进行回显t......
  • WPF InputHitTest的用法
    一、定义InputHitTest是一个用于检测鼠标指针是否命中某个可视元素的方法。它可以返回命中的最上层元素。 二、用法:①首先,我们需要获取InputHitTest方法所需的参数,即鼠标指针的位置。可以通过Mouse类的GetPosition方法来获取当前鼠标指针的位置:Pointposition=Mouse.Ge......
  • 使用uftrace跟踪bpf程序的执行
    作者[email protected]正文uftrace专门用来跟踪用户态的C/C++以及Rust程序的执行,此外它也支持跟踪内核函数。前一篇文章bpf_func_id是如何产生的?是以minimal为例,下面用uftrace跟踪一下执行流。为了可以让uftrace更好的工作,需要对Makefile稍加修改,给GCC加入-pg编译选项,用G......
  • Thinkpad 智能控温系统TPFanControl软件安装教程
    由于原来的tpfancontrol.com已经下线了,现在的TPFanControl可以到https://thinkwiki.de/TPFanControl里面进行下载,这里面复制了之前TPFanControl.com的页面,直接拉到下面点击下载: 下载安装后如果发现乱码,可以在页面FAQ下找到解决乱码的方案:问题描述是,在远东地区的windows......