美文网首页
mac 使用 pf 做端口转发

mac 使用 pf 做端口转发

作者: 字母数字或汉字 | 来源:发表于2016-04-28 02:36 被阅读7231次

曾经的 ipfw 已经被 pf 所替换。

首先我们要开启系统的端口转发功能。

本次开机生效:

# IPv4 的转发
$ sudo sysctl -w net.inet.ip.forwarding=1
net.inet.ip.forwarding: 0 -> 1

# IPv6 的转发
$ sudo sysctl -w net.inet6.ip6.forwarding=1
net.inet6.ip6.forwarding: 0 -> 1

开机启动配置,需以 root 身份添加或修改 /etc/sysctl.conf 文件,加入以下两行:

net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1

查看当前端口转发功能状态:

$ sudo sysctl -a | grep forward
net.inet.ip.forwarding: 0
net.inet6.ip6.forwarding: 0

开启端口转发之后,即可配置端口转发规则。你可以跟着手册来:

$ man pfctl
$ man pf.conf

或者跟着下文手动新建文件。如 /etc/pf.anchors/http 文件内容如下:

rdr pass on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
rdr pass on lo0 inet proto tcp from any to any port 443 -> 127.0.0.1 port 4443
rdr pass on en0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
rdr pass on en0 inet proto tcp from any to any port 443 -> 127.0.0.1 port 4443

检查其正确性:

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

修改 pf 的主配置文件 /etc/pf.conf 开启我们添加的锚点 http

pf.conf 对指令的顺序有严格要求,相同的指令需要放在一起,否则会报错 Rules must be in order: options, normalization, queueing, translation, filtering.

# 在 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"

最后导入并允许运行:

$ sudo pfctl -ef /etc/pf.conf

使用 -e 命令启用 pf 服务。使用 -E 命令强制重启 pf 服务:

$ sudo pfctl -E

使用 -d 命令关闭 pf:

$ sudo pfctl -d

从 Mavericks 起 pf 服务不再默认开机自启。如需开机启动 pf 服务,请往下看。

新版 Mac OS 10.11 EI Captian 加入了系统完整性保护机制,需重启到安全模式执行下述命令关闭文件系统保护。

$ csrutil enable --without fs

然后才能修改 /System/Library/LaunchDaemons/com.apple.pfctl.plist 文件实现开机自启用配置。

向 plist 文件中添加 -e 行,如下所示:

<string>pfctl</string>
<string>-e</string>
<string>-f</string>
<string>/etc/pf.conf</string>

相关文章

  • mac 使用 pf 做端口转发

    在使用mac os 进行web开发时,会遇到80端口已经被占用的情况。mac禁止了普通用户访问1024以下的端口,...

  • mac 使用 pf 做端口转发

    曾经的 ipfw 已经被 pf 所替换。 首先我们要开启系统的端口转发功能。 本次开机生效: 开机启动配置,需以 ...

  • mac 下端口转发

    Mac下的端口转发 最近开始使用Mac来作为开发机了,还是有很多不习惯,比如端口转发这件小事,windows上可以...

  • Docker-10 端口转发、容器卷 、网络、数据存储

    端口转发 使用端口转发解决容器端口访问问题 mysql应用端口转发: 查看本地地址: 运行容器:使用-p作端口转发...

  • 5. 调试利器 - 端口转发 - ssh隧道技术

    说明 使用技术:** SSH隧道**端口转发分为 本地端口转发 和 远程端口转发。本地端口转发:将远程的端口映射到...

  • mac 端口转发

    https://blog.csdn.net/u013771277/article/details/48104667...

  • Mac端口转发

    1. 问题 Mac 与 linux一样,1024以下端口为特权端口,只有root用户才有权监听。因此,要在mac...

  • 使用ssh做端口转发

    10.240.0.4是remoteserver后面的主机,把访问本机5500端口的流量通过remoteserver...

  • Mac os使用技巧

    开启转发功能 在mac os中,非root用户是无法使用小于1024的常用端口的。如果开发中需要用到80端口, 就...

  • tomcat与Apache的整合

    CentOS 6.x用普通用户无法使用1024的端口,当使用80端口时,可以使用iptables做转发。 apac...

网友评论

      本文标题:mac 使用 pf 做端口转发

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