Skip to content

关于macos上的pf redir #1980

@fbion

Description

@fbion

arm macos15
sudo ./sslocal -b "127.0.0.1:12345" --protocol redir --tcp-redir "pf" -vvvv

pf.conf
rdr pass log on lo0 proto tcp from any to 1.1.1.1 port {80,443} -> 127.0.0.1 port 12345
pass out log route-to (lo0 127.0.0.1) proto tcp from any to 1.1.1.1 port {80,443}

sudo pfctl -e -f pf.conf

这两条规则在本机执行
curl https://1.1.1.1
是正常的 能转给sslocal

但是用macos做网关时
sudo sysctl -w net.inet.ip.forwarding=1

sudo tcpdump -n -e -ttt -i pflog0
00:01:14.956086 rule 0/0(match): pass out on en0: 192.168.5.98.49298 > 1.1.1.1.80: Flags [SEW], seq 3751497900, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 188421942 ecr 0,sackOK,eol], length 0
00:00:00.000152 rule 0/0(match): rdr in on lo0: 192.168.5.98.49298 > 127.0.0.1.12345: Flags [SEW], seq 3751497900, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 188421942 ecr 0,sackOK,eol], length 0
是有日志的
5.98那边curl -v http://1.1.1.1
卡在GET / 在等待回应

sslocal这边一点反应也没有 没有日志

sudo pfctl -ss
No ALTQ support in kernel
ALTQ related functions disabled
ALL tcp 127.0.0.1:12345 <- 1.1.1.1:80 <- 192.168.5.98:49299 ESTABLISHED:ESTABLISHED

pf规则在intel macos10.15是正常的...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions