我们的服务器必须使用端口80。但是在我尝试在Mac上使用时,它总是说80已被占用了,但我不知道是哪个程序在使用它。
我在Google上搜索过,有人说是关于Apache的,但我尝试了一下,没有起作用。我找到了这个:https://gist.github.com/kujohn/7209628,但似乎访问我们的服务器IP地址并不能起作用。
我真的不知道发生了什么以及如何找出哪个程序正在使用端口80并停止它。
如果有人能帮忙,我会非常感激,因为我是新手使用Mac。谢谢。
我们的服务器必须使用端口80。但是在我尝试在Mac上使用时,它总是说80已被占用了,但我不知道是哪个程序在使用它。
我在Google上搜索过,有人说是关于Apache的,但我尝试了一下,没有起作用。我找到了这个:https://gist.github.com/kujohn/7209628,但似乎访问我们的服务器IP地址并不能起作用。
我真的不知道发生了什么以及如何找出哪个程序正在使用端口80并停止它。
如果有人能帮忙,我会非常感激,因为我是新手使用Mac。谢谢。
找出占用80端口的进程:
这只会终止该进程,而不会阻止已经运行的服务器实例继续运行。 (更正:“端口”列显示打开的端口数(和文件数?),而不是端口号)
如果您正在使用数据库管理系统,或者使用哪种数据库管理系统不确定,下面是一种使用MAMP的方法:
sudo apachectl stop
命令来停止服务器;在终端中键入以下内容
sudo lsof -i -n -P | grep TCP
您会得到一个列表 - 例如 Dropbox 监听在 80 端口
您可以将输出复制到文本编辑器等中进行搜索
在Mac上,1024以下的端口只能由root
用户绑定。请尝试以root
用户(使用sudo
命令)启动您的服务器,或者尝试使用1024以上的端口。
您还可以尝试在/etc/sudoers
文件中为您的用户添加root权限。
# 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
sudo -i
),然后返回到项目并运行serve --port 80
。 - Matthew Zackschewski$ 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(和其他我认为Apache可能占用的端口8080、443等)。
之后,重新启动Python服务器,它就可以正常运行了。
可能是Skype在使用80端口。如果您已经安装并运行Skype,请尝试在设置中更改到其他端口。
端口号从0到1023的范围被归类为“众所周知”的端口,端口号80保留用于HTTP。通常情况下,您会在端口80上监听服务器以处理HTTP请求。
Source: http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers