80 port system
来源:互联网 发布:php生成word文档 编辑:程序博客网 时间:2024/06/04 18:00
前言
port 80作為網站預設的port因此大部份的環境都不會檔80 port。這意味著有一些程式會因為這個便利因此使用80 port。 當在開發Java EE 網站的時候,我們通常會使用Tomcat作為Servlet的Container。最討厭的是,當你啟動Tomcat做測試的時候,出現了
Port 80 required by Tomcat v7.0 Server at localhost is already in use....
在這一篇裡面,我會介紹,當遇到這種問題的時候,有什麼解決辦法。
解決流程
基本上當遇到這種問題的時候,說明文字還蠻清楚,那就是某一個process早已經佔用了我們要使用的port,因此我們處理流程就是:
- 找出是哪一個process佔用了我們的port
- 關掉/修改process所使用的port
找出是哪一個process佔用了我們的port
基本流程:
- 找出佔用port的process id
- 透過taskmgr.exe(工作管理員) 找出process id 對應的 process
1 透過netstat找出佔用port的process id
我們可以透過netstat來看那些process佔用了我們要的port,我們可以在cmd裡面輸入:
1
netstat -ano | findstr 0.0:80
上面的指令就是使用netstat列出我們所有process所listen的port,然後在透過findstr找出所有port號是80的。
以下面截圖為例,我們有一個process id 是 4 號的,目前正listen port 80:
透過netstat看那些process 佔用port 802 透過taskmgr.exe(工作管理員)找出process
首先我們開啟taskmgr.exe:
開啟taskmgr.exe並且以pid欄位做排序2-1 「題外話」 顯示PID欄位
假設你的taskmgr.exe沒有顯示pid欄位,那麼在「檢視(View)" -> "選取欄位(Select Columns..)" -> 勾選 "PID (Process Identifier)"
顯示PID欄位以上面netstat找到的例子來說,我們要找的process id 是4號,不過從上面截圖可以看出process id 並沒有4。這個時候我們會需要選取「顯示來自所有使用者的處理程序」:
顯示所有使用者的處理程序找到process id 是4號的程式描述是「NT Kernel & System」。看到這個相信大家還是不知道這個是什麼Orz,沒關係下一部份將會介紹。
關掉/修改process的port
上一段介紹了如何查到哪一個process佔用了我們的port,這一階段介紹幾個比較常見會佔用port 80 的process。
Skype
首先process id 4和skype沒有關係,不過skype作為大部份電腦都會安裝的軟體,因此從skype開始說。
我第一個遇到佔用80 port的就是skype。很難想像skype為什麼會需要用到port 80,不過看了設定的說明,可能是想要利用port 80 在大部份環境下面都不會被擋住的特性,因此預設會透過port 80和443來傳輸資料。
我們可以再「設定」->「連線」把「以80 和 443 port為替代連入連線」勾掉:
process id 4 "NT Kernel & System"
其實process id 4有可能是以下幾種服務導致的:
- IIS
- SQL Server Reporting services
- Web Deployment Agent Service
- World Wide Web Publishing service
IIS
iis作為一個web serverice當然會佔用port 80,因此我們需要看我們os是否開啟了iis服務。
在Windows 7以上的OS都可以選擇是否要開啟iis服務。預設是關閉的。
我們可以開啟「新增刪除程式(Uninstall or change a program)」-> 「開啟關閉Windows 功能(Turn Windows features on and off)」(這邊中文名稱是我自己翻的,因為os是英文所以不確定正確的中文翻譯),然後看iis是否有開啟:
這邊可以看到IIS有被開啟了這個時候,我們要不是把iis勾掉,要不然就是把iis相關的service就okay了。
SQL Server Reporting services
在Server環境下面最長看到的一個就是sql server的reporting service佔用了port 80。
我們可以從service.msc(服務管理員)裡面找到這個服務停掉它來釋放port 80,不過如果還想要使用Sql server reporting,我們就需要修改預設使用的port。
在這裡我會介紹如何修改sql reporting service預設使用的port:
開啟Reporting service的組態管理員
找到「Web 服務 URL」->「TCP通訊埠」然後把他從80改成可以用的port
然後找到「報表管理員URL」->「進階」然後把port改成和上面修改的port號一致
Web Deployment Agent Service
在service.msc(服務管理員)關掉web Deployment Agent Service這邊有一個需要注意的是,要用service.msc(服務管理員)來找,而不要用taskmgr(工作管理員)來查找,從上圖就可以看出右邊是用taskmgr而左邊使用service.msc, 然後左邊有顯示但是右邊沒有。
總結
上面提到了一些常見佔用port 80的service。通常來說我們可以在服務的設定裡面修改使用的port,或者以直接停用service的方式達到取回我們的port 80。
不過如果真的找不到佔用的service,那麼就只能修改我們的Tomcat 使用 port。
- 80 port system
- PID 4 system port 80
- USB Exposed Port System Test
- ssh-port-redirect-in-linux-system
- unable to open debugger port:java.net.SocketException以及直接运行报80端口被system占用
- port
- port
- port
- port
- uC/OS-II - Port for the LINUX Operating System
- http端口映射(80 port mapping)
- Service overview and network port requirements for the Windows Server system
- How to get socket port number if it's system assigned
- How to start&stop WMA MSCA(Mobile) port in R12/11i system
- mt2523[MT2523]system log預設顯示在 UART 2(MK20 usb port)
- apache IIS Port Conflicts On 80
- tomcat use 80 port in ubuntu
- What Program Is Using Port 80
- 集成 admob Banner广告出错之二 _OBJC_CLASS_$_EKEvent
- Cocos2d-JS 快速入门二 HelloWord
- 【Leetcode】Binary Tree Level Order Traversal (Tree Traversal)
- Python中字符串的解压缩
- NSUnknownKeyException
- 80 port system
- Oracle表维护 快速备份删除数据
- UVA 409 Excuses, Excuses! (字符处理)
- ASP.NET Web API GZip
- Netbeans 快捷键
- UVA 10115 Automatic Editing(字符处理)
- cocos编译出错大全集
- 【Leetcode】Binary Tree Level Order Traversal II (Tree Traversal)
- UVA 10815 Andy's First Dictionary(字符处理)