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 を生成するいくつかの方法

推薦する

Vueは大画面ページのスクリーン適応を実現します

この記事では、大画面ページのスクリーンアダプテーションを実現するためのVueの具体的なコードを参考ま...

div の高さをブラウザの高さに合わせて調整する方法

この古くからある疑問は、数え切れないほどのフロントエンド開発者やバックエンドプログラマーを悩ませてき...

Linux ハードウェア構成コマンドの例

ハードウェア ビュー コマンドシステム # uname -a # カーネル/オペレーティング システ...

HTML 選択ボックスのプレースホルダーの作成に関する問題

テキスト入力でプレースホルダーを使用していますが、問題なく動作します。しかし、選択ボックスにはプレー...

webkit-box-reflect を巧みに使用してさまざまな動的効果を実現する (要約)

かなり前の記事で、 -webkit-box-reflectプロパティについて説明しました。リフレクシ...

IE における条件付きコメントの利点と欠点

IE の条件付きコメントは、通常の (X)HTML コメントに対する Microsoft 独自の (...

MySQL 8.0.23 メジャーアップデート (新機能)

著者: Guan Changlong は、Aikesheng の配送サービス部門の DBA です。主...

MySQLはデータベースのN+1クエリ問題を解決します

導入HibernateやMyBatisなどのORMフレームワークでは、部門に関連付けられたユーザーオ...

バックアップ データをインポートするときに innodb_index_stats がエラーを報告する場合の主キー競合の解決方法

障害の説明percona5.6、mysqldump フルバックアップ、バックアップデータのインポート...

vue+element テーブルで動的な列フィルタリングを実装するためのサンプルコード

要件: データをリスト形式で表示する場合、表示すべき情報項目が多く、表が横に長くなってしまいます。表...

UbuntuへのDocker CEのインストール

この記事は、Ubuntu 17.10 での Docker CE のインストールを記録するために使用さ...

Linuxでテキスト比較を実現するコツを教えます

序文コードを書く過程で、必然的にコードに何らかの変更を加えることになります。しかし、変更を加えるとき...

Ubuntu16.04はphp5.6ウェブサーバー環境を構築します

Ubuntu 16.04 はデフォルトで PHP7.0 環境をインストールしますが、PHP7 は一部...

CSS3は光る境界線効果を実現します

操作効果: html <!-- この要素は表示されません。DOM は JavaScript に...

WeChatアプレットコンポーネントライフサイクルの落とし穴の記録

通常、コンポーネントのライフサイクルは、ビジネス ロジックが始まる場所です。ビジネスシナリオが複雑で...