質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

解決済

5回答

13303閲覧

CentOS7でのポートとサービスの対応を調べる方法を教えてください

shimaokazu

総合スコア26

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

0クリップ

投稿2015/10/06 10:53

CentOSで今までは6.5のバージョンを使っていましたが、CentOS7を初めて使います。
というよりはLinuxサーバー自体初心者です。

WEBサーバーとして、Apacheではなくてnginxをインストールしました。
しかし、nginxのサービスを起動しようとするとエラーをはかれてしまいました。

そこでエラー内容を見たら、どうやらポートが被っているみたいなのを見つけたので、
/etc/nginx/conf.d/default.confファイルのポート変更の部分を、デフォルトの80番では無く、てきとうなポートに変更したらnginxのサービスの起動に成功しました。
(ちなみにてきとうなポート番号は55221です)

しかし、疑問に思ったのは、なぜかデフォルトの80番ポートでは起動できない事です。
[ss -atu]コマンドを打ったところ、以下のような結果が出ました。(一部分だけです)

LISTEN 0 128 *:http :
LISTEN 0 128 *:55221 :
LISTEN 0 128 *:ssh :

nginxには55221に振っていますが、何かのサービスが80番を使っているようです。
Apacheかな?と思い、インストールされているパッケージにapacheが無いか探したものの、それらしいものは見つかりませんでした。
(httpdやらapacheで検索したものの見つからず)

何がこの80番を使っているか調べる方法を、どうかご教授願います。

ちなみにサーバーはVirtualBoxの環境下で動かしており、ブリッジ接続です。(つまりホストと仮想環境側は違うIPアドレスが割り振られています)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

何がこの80番を使っているか調べる方法を、どうかご教授願います。

lsof -i :80 とか。

片方側を消したいので、PIDからそれが実行されているファイルを探す方法ってありますか?

PIDが1234だとすると、コマンドラインはcat /proc/1234/cmdlineで、実行ファイル名はls -l /proc/1234/exe でわかります。
あとは、ps axfでプロセスの親子関係が図示されるので、それも参考になると思います。

投稿2015/10/06 13:39

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shimaokazu

2015/10/06 16:33

実行ファイルの場所ってそうやってわかるんですね。初めて知りました。 教えていただきありがとうございます。
guest

0

netstat -p で PIDとプロセス名がわかります。

$ netstat -anp | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17468/httpd

PIDで実行時のコマンドラインがわかります。

$ cat /proc/17468/cmdline /usr/sbin/httpd

rpm -qif で実行コマンドを含むRPMパッケージがわかります

$ rpm -qif /usr/sbin/httpd Name : httpd Relocations: (not relocatable) Version : 2.2.15 Vendor: Red Hat, Inc. Release : 47.el6_7 Build Date: 2015年08月18日 15時01分30秒 Install Date: 2015年09月01日 16時50分06秒 Build Host: x86-029.build.eng.bos.redhat.com Group : System Environment/Daemons Source RPM: httpd-2.2.15-47.el6_7.src.rpm Size : 3086085 License: ASL 2.0 Signature : RSA/8, 2015年08月21日 01時13分28秒, Key ID 199e2f91fd431d51 Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> URL : http://httpd.apache.org/ Summary : Apache HTTP Server Description : The Apache HTTP Server is a powerful, efficient, and extensible web server.

投稿2015/11/19 04:18

編集2015/11/19 05:34
take88

総合スコア1351

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

root ユーザーで "ss -atup" (-p オプション) でプロセスIDがわかると思います。
他、lsof, fuser などでも。

投稿2015/10/06 15:49

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

片方側を消したいので、PIDからそれが実行されているファイルを探す方法ってありますか?

psコマンドの出力を適当に加工すると比較的簡単に調べられますが、シェルスクリプト化して公開されている方がいらっしゃいましたので、参考にされてはいかがですか?
実行中のPIDとパスとその他を表示するスクリプト作った

ところで、複数のプロセスが起動しているからと言って nginx が異なるパスに複数インストールされているとは限りません。
条件さえ許せば同じプログラムを何度も起動させる(複数プロセスを起動させる)ことができます。

一番身近な例は ログインシェル です。bashは通常一つしかインストールされていませんが、たくさんのユーザーが同時にログインすると、そのセッションの数だけ /bin/bash が起動します。

ですから、OSのブート時に nginx が自動的に起動する設定になっていないかを、chkconfig 等でまずは調べて見られることをお勧め致します。

投稿2015/10/06 13:14

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shimaokazu

2015/10/06 16:32

原因を調べた所、片方のプロセスが動いたままになっていたので、片方をkillしたら収まりました。 そしてOS起動時にnginxが立ち上がるように設定していたことにも後で気づいたので、[pi-chan]さんの言う通りでした・・・ 他の回答者さんも詳しい説明をしていただきありがとうございました。
guest

0

sh

1nmap localhost

nmap が見つからないというエラーが出るときは、yum でインストールしてください。

投稿2015/10/06 10:56

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shimaokazu

2015/10/06 11:07

nmapコマンド以外の方法ってありますか?
shimaokazu

2015/10/06 11:09

ちなみにいろいろと調べてみました所、80番の正体もnginxでした。 つまりnginxが二つも入っているみたいです。(なぜだかは自分にも不明) 片方側を消したいので、PIDからそれが実行されているファイルを探す方法ってありますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問