我们必须为我们的服务器使用端口80。但是当我试图在Mac中使用它时,它总是说使用80,但我不知道哪个程序使用它。
我在谷歌搜索过,有人说它是关于apache的,但是我尝试过,但是没有用。我发现了这个:https://gist.github.com/kujohn/7209628,但似乎没有按IP地址访问我们的服务器。
我真的不知道发生了什么,我怎样才能找到使用端口80的程序并将其停止。
非常感谢任何人都可以提供帮助,我是使用Mac的新手。感谢。
答案 0 :(得分:16)
找出使用端口80的进程
这只会终止进程,它不会阻止已经运行的服务器实例继续运行。
目前尚不清楚您是否使用数据库管理系统,以及使用MAMP为我工作的一种方法如下:
sudo apachectl stop
命令停止服务器。答案 1 :(得分:8)
在终端
中键入以下内容sudo lsof -i -n -P | grep TCP
你会得到一份清单 - 例如Dropbox侦听80
您可以将输出复制到文本编辑器等进行搜索
答案 2 :(得分:2)
可能是正在使用端口80的Skype。如果已安装并运行Skype,请尝试在设置中更改为其他端口。
答案 3 :(得分:1)
我遇到了这个问题,apache已通过launchctl禁用,但是在启动后仍在绑定端口80,我可以启动apache并可以工作,但是卸载后,我无法在端口80上启动任何东西我使用Python的内置Web服务器作为简单测试。它可以在端口81上运行,但不能在端口80上运行。
sudo python -m SimpleHTTPServer 80
-不起作用
sudo python -m SimpleHTTPServer 81
-可以工作
以下是症状:
$ launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
/System/Library/LaunchDaemons/org.apache.httpd.plist: Could not find specified service
$ sudo lsof -i ':80'
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Python 3353 root 3u IPv4 0xe455777a82799f05 0t0 TCP *:http (LISTEN)
对我来说(在进行过多搜索之后)的解决方法很简单:
sudo pfctl -F all
这刷新了数据包过滤器,释放了端口80(以及其他我认为8080、443的端口,无论端口可能正在连接)
然后,重新启动python服务器,它就出现了。
答案 4 :(得分:0)
在Mac上,低于1024的端口只能由root
用户绑定。
尝试以root
用户(使用sudo
)启动服务器,或尝试使用1024以上的端口。
您还可以尝试在/etc/sudoers
# root and users in group wheel can run anything on any machine as any user
root ALL = (ALL) ALL
%admin ALL = (ALL) ALL
your_user_here ALL = (ALL) ALL
答案 5 :(得分:-1)
0到1023范围内的端口号被归类为'众所周知的'端口号80保留给HTTP。通常,您有服务器侦听端口80以处理HTTP请求。
<强>来源:强> http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers