Linux 占有ポートの強制解放と Linux ファイアウォールのポート開放方法の詳しい説明

Linux 占有ポートの強制解放と Linux ファイアウォールのポート開放方法の詳しい説明

nginx、mysql、tomcat などのサービスをインストールするときに、使用する必要があるポートが不可解に占有されているという問題が発生することがあります。この問題を解決する方法は次のとおりです。

ポートといえば、ファイアウォールについても触れなければなりません。この記事では、ファイアウォールの開発ポートを構成する方法についても簡単に紹介します。

Linuxでポートステータスを表示するさまざまな方法

すべてのポートのマッピング関係は /etc/services ファイルにあります。

Linux ポートの簡単な紹介。ポート番号の範囲は 0 から 65536 です。各番号付きポートの用途は次のとおりです。

0-1023: よく知られているポート、一般的なサービスにバインドされている (FTP、SSH)

1024-49151: 登録ポート。一部のサービスにバインドするために使用されます。

49152-65535: 動的またはプライベートポート。あらゆるネットワーク接続に使用可能

ポートは TCP と UDP の送信プロトコルに分かれています。

Linux のポートステータス表示コマンド

次のコマンドを使用してポートの状態を確認できます。コマンドをクリックすると、各コマンドの使用方法の詳細を調整できます。

nmapコマンド、ポートスキャンの使用

netstat開発ポートを検出します

lsofポート記述子をチェックします

# このマシンにバインドされているポートを表示する nmap 127.0.0.1

# ポート 3306 を確認する netstat -anlp | grep 3306

# インターフェース3306をチェック lsof -i:3306

Linuxで占有ポートを解放する方法

解決手順は次のとおりです。

ポートを占有しているプロセスを見つける

プロセスを強制終了する

次のコマンドを使用します。

# コマンドとして記述できる

netstat -anp|grep 8080|awk '{print $7}'|awk -F '/' '{print $1}'|xargs kill -s 9

各コマンドの意味は次のとおりです。

netstat -anpすべてのネットワーク使用状況とそれを使用しているプログラムを表示します。

grep 8080ポート 8080 のレコードと一致します (18080 が含まれる場合があります)

awk '{print $7}' 7列目のプロセスを次の形式で出力します: 18989/nginx

awk -F '/' '{print $1}'プロセス PID: 18989 をインターセプトします

xargs kill -s 9前のコマンドの出力をパラメータとして使用してプロセスを強制終了します。

占有ポートを解放するためのステップバイステップのソリューション

ポートが占有されているかどうかを確認する

たとえば、ポート8080が使用されているかどうかを確認する必要がある場合は、次のコマンドを使用できます。

netstat -an | grep 8080

ポートを占有しているプロセスを照会する

lsofコマンドを使用して表示できます

lsof -i:8080

netstatとgrepを使って表示することもできます

netstat -anp|grep 8080

コマンドの最後の行は、ポート 8080 を占有しているプロセスの PID と名前です。

ポートを占有しているプロセスを強制終了する

kill コマンドを使用して、前の手順で見つかったプロセスを直接終了できます。

kill -9 19664

Linuxファイアウォールがポートを解放

Linux ファイアウォールの起動とシャットダウン

以下で紹介するファイアウォールは iptable であり、firewalld には適用できません。

ファイアウォールをオンにします(再起動後も有効です): chkconfig iptables on
ファイアウォールをオフにします(再起動後も有効です): chkconfig iptables off
ファイアウォールを有効にする(即時有効、再起動後は無効): service iptables start
ファイアウォールを無効にします(即時有効、再起動後は無効):service iptables stop
ファイアウォールを再起動します: service iptables restart

Linuxでファイアウォールの状態を確認する

表示するには次のコマンドを使用できます。

/etc/init.d/iptables ステータス

# または単にiptablesステータス
iptables -L

# 設定ファイルを直接表示することもできます vim /etc/sysconfig/iptables 

Linuxファイアウォールでポートを開く

たとえば、ポート 8080 を開くには、次のコマンドを使用します。

iptables -A 入力 -p tcp --dport 8080 -j 受け入れ
# サービスも再起動する必要があります service iptables restart

# 設定ファイルを直接編集することもできます vim /etc/sysconfig/iptables
# 次に、ファイルの末尾に 8080 から 8181 までのすべてのポートを開く行を追加します。iptables -A INPUT -p tcp --dport 8080:8181 -j ACCEPT

–Aパラメータはルールを追加するものとみなされます
–pはプロトコルを指定します。通常はTCPプロトコルを使用しますが、もちろんUDPもあります。
–dportはターゲット ポートです。データが外部からサーバーに入るときにターゲット ポートになります。
–sportデータはサーバーから送信されるため、データソースポートとして使用されます
–j ACCEPT (受信) または DROP (受信しない) を指定します。

上記はLinuxの占有ポートの強制解放とLinuxファイアウォールのポート開放方法についてです。Linuxポートに関するその他の記事については、以下の関連記事をクリックしてください。

以下もご興味があるかもしれません:
  • Linuxでファイルを削除してもスペースが解放されない問題の対処方法
  • Linux サーバーのメモリを手動で解放する (具体的な手順)
  • CCKiller: Linux 用の軽量 CC 攻撃防御ツール。数秒でターゲットをチェックし、自動的にブロックして解放します。
  • Linux メモリのクリーンアップ/解放コマンドの概要
  • Linuxのメモリ解放コマンドの詳しい説明
  • Linuxでキャッシュを手動で解放する方法の詳細な説明
  • Linuxファイル削除後にスペースが解放されない問題の詳しい説明

<<:  MySQL で行を列に変換したり、列を行に変換したりする詳細な例

>>:  JavaScript で一意の ID を生成するいくつかの方法

推薦する

超詳細なMySQL使用仕様の共有

最近、データベース関連の操作が多くなり、会社の既存の仕様はあまり包括的ではありません。インターネット...

HTML と CSS に関する基本的なメモ (フロントエンドでは必読)

HTMLに触れた当初はレイアウトにいつもテーブルを使っていましたが、とても面倒で見た目も悪かったの...

Vue は動的なプログレスバー効果を実現します

この記事では、動的なプログレスバー効果を実現するためのVueの具体的なコードを例として紹介します。具...

MySQL の挿入およびバッチ ステートメントのいくつかの例の詳細な説明

目次序文1.無視を挿入2. 重複キーの更新時3. を置き換える4.存在しない場合は挿入する5. デー...

フロントエンドセキュリティの詳細な説明: JavaScript の http ハイジャック対策と XSS

目次HTTP ハイジャック、DNS ハイジャック、XSS HTTPハイジャックDNSハイジャックXS...

MySQL における Decimal 型と Float Double 型の違い (詳細説明)

MySQL には、10 進数などの標準データ型だけでなく、float や double などの非標...

JavaScript 以外の静的リソースのバンドルの詳細

目次1. パッケージングツールでのカスタムインポート2. ブラウザとバンドラの共通インポート構文3....

プライベートイメージウェアハウスを構築するためのDockerレジストリの実装方法

マイクロサービスのイメージは、保存用に Docker リポジトリにアップロードされます。一般的に使用...

CocosCreator ユニバーサルフレームワークデザインネットワーク

目次序文Websocketの使用Websocketオブジェクトの構築Websocket ステータスW...

CSSスタイルで実現されるHTML背景色のグラデーション効果

エフェクトのスクリーンショット:実装コード:コードをコピーコードは次のとおりです。 <!DOC...

mysql 8.0.18.zip のインストールと構成方法のグラフィック チュートリアル (Windows 64 ビット)

以前にインストールされたバージョンのデータベースをアンインストールする方法については、この記事を参照...

VueはPCで写真をアップロードする機能を実現

この記事の例では、PC上で写真アップロード機能を実現するためのVueの具体的なコードを参考までに共有...

docker を使用して Windows 10 Home バージョンで Laravel 開発環境を構築する方法の詳細なチュートリアル

オペレーティング·システム: Win10 ホームエディションDockerをインストールします:公式サ...

JavaScriptでカレンダー効果を素早く実装

この記事では、カレンダー効果を素早く実現するためのJavaScriptの具体的なコードを例として紹介...