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

推薦する

Linux でテキストから改行文字を削除する方法

復帰文字 ( Ctrl+M ) に不安を感じても心配しないでください。それらを排除する簡単な方法がい...

要素タイムラインの実装

目次コンポーネント - タイムラインカスタムノードスタイルカスタムタイムスタンプコンポーネント - ...

Linux でも利用できる人気の Windows アプリ 10 選

データ分析会社Net Market Shareによると、Linuxデスクトップオペレーティングシステ...

Vue codemirrorはオンラインコードコンパイラの効果を実現します

序文Web 上でオンライン コード コンパイルの効果を実現したい場合は、 CodeMirrorを再度...

MySQL の nvl() 関数に似た ifnull() 関数についての簡単な説明

IFNULL(式1,式2) expr1 が NULL でない場合、IFNULL() は expr1 ...

Ubuntu 18.04にMySQL 5.7をインストールする

この記事は MySQL 公式サイトを参考にしてまとめたものであり、遭遇したいくつかの問題も記録されて...

Zabbix でフィルターを使用して監視を実装する方法

最近、監視機器の作業をしていたとき、ポートがダウンしているというアラームが常に出ていました。データを...

HTML でフォーム入力やその他のテキスト ボックスを読み取り専用にして編集不可にする方法

場合によっては、フォーム内のテキスト ボックスを読み取り専用にして、ユーザーがその中の情報を変更でき...

JS の 3 つの主要な問題、非同期性とシングルスレッドについて簡単に説明します。

目次シングルスレッド非同期シングルスレッドしかし、開発中にネットワーク リクエストやスケジュールされ...

Alibaba Cloud ECS サーバーでポート 8080 を開く方法

セキュリティ上の理由から、Alibaba Cloud Server ECS にはデフォルトで独自のセ...

Docker Secretの管理と使用の詳細な説明

1. Docker Secretとは1. シナリオ表示MySQL サービスなど、一部のサービスではパ...

複数の HTML ページで HTML コードをまとめて呼び出す方法

方法 1: スクリプト方式を使用する:共通ヘッダー ファイル head.js または共通フッター フ...

docker コンペ応募でよく使われるコマンドのまとめ

アカウントにログイン DOCKER_REGISTRY=registry.cn-hangzhou.al...

IIS web.config でクロスドメイン アクセスを設定する方法

要件: ページに画像を表示する必要がありますが、さまざまな理由により、画像はサーバー 2 にあります...