Mac Yosemite 开机启动设置80端口转发
2015-08-18 14:27
459 查看
Mac Yosemite 开机启动设置80端口转发
最近换了Mac系统,启动jetty时,发现80端口不能用:2015-01-27 23:06:57.819:WARN::failed SelectChannelConnector@0.0.0.0:80: java.net.SocketException: Permission denied 2015-01-27 23:06:57.820:INFO::Started Ajp13SocketConnector@0.0.0.0:8009
2015-01-27 23:06:57.820:INFO::AJP13 is not a secure protocol. Please protect port 8009 2015-01-27 23:06:57.820:WARN::failed Server@426c87c9: java.net.SocketException: Permission denied java.net.SocketException: Permission denied
原因是1024以下端口,被Unix系统保留,只能以root权限使用。所以希望能够使用8080来启动jetty,然后访问80端口转向8080,在网上找到的解决方案如下:
方案一:(MacOS Yosemite 下已失效):
mac 端口转发
》查看当前 ipfw 规则:
sudo ipfw show
》port 80 to 8080 forward:
sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in
》清除 ipfw 规则
sudo ipfw flush
方案二:更新到 10.10 之后之前使用 ipfw 命令被彻底移除了,以下是例外一个方案(虚拟机设置的端口转发案例,并开机自动加载)。
下面的命令都是在 root 用户下执行,推荐执行 sudo -i 之后完成下面的操作
创建文件 /etc/pf.anchors/vbox,添加如下两行,将本地 80,22 端口转发到 8080,8022 端口
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 22 -> 127.0.0.1 port 8022
以上红色部分需要注意,OS X 默认有个本地网络端口名字叫 lo0 如果你想通过局域网甚至外网访问 80, 22 端口则还需要按照这个格式添加接入网络的端口。
BTW: 因为非 root 用户不能使用低端口,例如 22, 80 于是我为了访问虚拟机的 ssh 以及 http 使用 22 和 80 端口,于是将 virtualbox 的端口转发设置为:
宿主机 | 虚拟机 |
---|---|
8022 | 22 |
8080 | 80 |
再编辑 /etc/pf.conf 文件,在如下位置添加红色两行
scrub-anchor "com.apple/*" nat-anchor "com.apple/*" rdr-anchor "com.apple/*" rdr-anchor "vbox" dummynet-anchor "com.apple/*" anchor "com.apple/*" load anchor "com.apple" from "/etc/pf.anchors/com.apple" load anchor "vbox" from "/etc/pf.anchors/vbox"
现在可以使用命令
pfctl -ef /etc/pf.conf
测试端口转发是否生效
为了实现开机自启动,需要编辑文件 /System/Library/LaunchDaemons/com.apple.pfctl.plist
找到如下位置,添加一行红字所示,之后重启即可自动设置端口转发
<string>pfctl</string> <string>-e</string> <string>-f</string> <string>/etc/pf.conf</string>
ab02
相关文章推荐
- i-jetty环境搭配与编译
- jetty小试
- Seafile Server本地权限提升漏洞(CVE-2014-5443)
- 从USB安装Ubuntu Server 10.04.3 图文详解
- 什么是Mac OS X?跟Linux有什么区别
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- 开发阶段Jetty运行Jsp报错且响应空白
- 使用zabbix监控Nginx活动状态--Part1
- 高效访问Internet-启用ISA Server的缓存
- windows server域用户提升到本地更高权限组中的方法
- Linux vs Mac:Linux 比 Mac 好的 7 个原因
- 完美解决SQL Server 安装问题:以前的某个程序安装已在安装计算机上创建挂起的文件操作
- IIS 错误 Server Application Error 详细解决方法
- 在WINXP系统上安装SQL Server企业版的方法
- SQL Server 存储过程的分页
- 苹果mac OS X上安装metasploit
- SQL Server复制需要有实际的服务器名称才能连接到服务器
- SQL Server 2000向SQL Server 2008 R2推送数据图文教程
- SQL server 表操作介绍