mac禁止了普通用户访问1024以下的端口,包括80端口
想要通过80端口访问则需要通过端口转发,命令如下:
sudo ipfw add fwd 127.0.0.1,1081 tcp from any to 127.0.0.1 80 in
大致意思是做端口转发,80端口打到1081上,这样web服务都指向了nginx的1081(相当于原来的80端口)
老版本OS X使用ipfw端口转发,但新版本 OSX Yosemite (10.10.3) 以后,已经无法使用ipfw,而是换成了pf.
pf 转发步骤:
1. 新建 com.pow
vim /etc/pf.anchors/com.pow
1 2 | rdr pass on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8088 rdr pass on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8088 |
或
1 | rdr on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8088 |
其中,lo0为ifconfig时查询到的网卡的名字 80是tomcat端口,8088为转发的端口
注意: 在段落末尾一定要加换行,否则会报syntax error错误。
2. pfctl 命令检测配置文件
sudo pfctl -vnf /etc/pf.anchors/com.pow
3. 配置 pf.conf
vim /etc/pf.conf
添加内容如下红色字体:
#
# com.apple anchor point
#
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
rdr-anchor "pow"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
load anchor "pow" from "/etc/pf.anchors/com.pow"
转发端口配置
1. 手动临时设置转发端口:
sysctl -w net.inet.ip.forwarding=1
2. 永久文件设置转发端口
sudo vim /etc/sysctl.conf
添加内容:
1 2 | net.ip.forwarding=1 net.inet6.ip6.forwarding=1 |
执行命令使生效:
sysctl -p // mac os x 下不生效,无此命令...
3. 查看生效转发端口
sudo sysctl -a | grep forward
1 2 3 | yg-mac:Java homer$ sudo sysctl -a | grep forward net.inet.ip.forwarding: 1 net.inet6.ip6.forwarding: 0 |
说明: 1 - 表示生效, 0 - 表示未生效
4. 生效配置
sudo pfctl -evf /etc/pf.anchors/com.pow // OSX Yosemite以后版本
或
sudo pfctl -f /etc/pf.conf // OSX Yosemite以前版本
5. 开机启动
sudo pfctl -e // 开启开机启动
sudo pfctl -d // 关闭开机启动
ipfw 命令(OSX Yosemite 10.10.3 以前版本有的命令):
ipfw (Internet Protocol FireWall)
a、查看规则:
$ sudo ipfw list
00100 fwd 127.0.0.1,1081 tcp fromany to 127.0.0.1 dst-port 80 in
65535 allow ip from any to any
b、删除规则:
sudo ipfw delete 100
c、新增规则:
sudo ipfw add fwd 127.0.0.1,1081tcp from any to 127.0.0.1 80 in
No comments:
Post a Comment