Linux でポートを開く方法

外部の PC またはサーバーに接続する必要がありますか? または、別の PC またはサーバーに接続する必要がありますか? Linux を実行している場合は、正しいポートが開いていることを確認する必要があります。

他のオペレーティング システムには通常、このためのグラフィカル ツールがありますが、Linux はそれほど単純ではありません。以下では、Linux でポートを開く方法について説明します。

ポートとは何ですか? なぜポートを開く必要があるのですか?

ポートは、ネットワーク上のエンドポイントです。特定の部屋や外の世界につながるドアのようなものですが、コンピュータ上にあると考えてください。インターネット上で行うことはすべて、特定のポートまたは一連のポートを使用します。

たとえば、独自の Minecraft サーバーを実行するとします。そのためには、ユーザーが接続するためのポートを開く必要があります。同じことが、独自の Web、メール、または FTP サーバーの実行にも当てはまります。

ポートは、ネットワークに接続されたすべてのデバイスで標準化されています。最初の 1,024 ポート (0 ~ 1023) は、ウェルノウン ポート番号と呼ばれます。これらは、HTTP および HTTP (それぞれポート 80 および 443) や SSH (ポート 22) など、最も一般的に使用されるサービス用に予約されています。

1024 を超えるポート番号はエフェメラル ポートと呼ばれ、通常はオンライン ゲームやプライベート Web サーバーなどに使用できます。1024 から 49151 までのポート番号は登録済みポートまたはユーザー ポートと呼ばれ、49152 から 65535 までのポート番号は動的ポートまたはプライベート ポートと呼ばれます。

Linux で開いているポートの一覧表示

Linux でポートを開こうとする前に、ポートがまだ使用されていないことを確認する必要があります。これは、ほとんどの Linux ディストリビューションに含まれているnetstatコマンドを使用して実行できます。ディストリビューションにnetstatがない場合は、代わりにssを使用できます。

netstat -lntu

Linux でポートを開く方法

これにより、すべてのリッスン ソケット ( -l ) とポート番号 ( -n ) が出力されます。これには、TCP ポート ( -t ) と UDP ( -u ) が含まれます。システムにnetstatがない場合は、同じパラメーターでssを使用してください。

ss -lntu

Linux でポートを開く方法

Linux でポートを開く方法

この例では、TCP 接続に対してポート 4000 を開くと仮定します。まず、ポートがまだ使用されていないことを確認する必要があります。これはnetstatまたはssを介して行います。

netstat -na | grep :4000 ss -na | grep :4000

出力が空白であると仮定すると、適切なポート規則をシステムのファイアウォールに追加できます。この方法は、ディストリビューションと、新しいufwファイアウォールまたはfirewalldを使用しているかどうかによって異なります。Ubuntu は ufwを優先しますが、CentOS は通常、代わりに firewalldを使用します。もちろん、古いiptablesファイアウォールを使用している Linux ディストリビューションがまだいくつかあります。

Ubuntu ユーザーおよびその他の ufw ファイアウォール ベースのシステム向け

古いiptablesファイアウォールを使用する代わりに、Ubuntu およびその他の一部のディストリビューションはufwを使用します。これらのシステムでは、次のコマンドでポートが開きます。

sudo ufw allow 4000

次のいくつかの手順をスキップして、新しく開いたポートをテストして、機能していることを確認します。

CentOS およびその他のファイアウォール ベースのシステムを使用して Linux でポートを開く方法

システムでfirewalldを使用している場合は、firewall-cmdコマンドを使用してルールを更新することをお勧めします。

sudo firewall-cmd --add-port=4000/tcp

これは永続的な変更ではありませんが、ポートをテストした後、再起動後にルールを保持する方法について説明します.

その他の Linux ディストリビューションの場合

Linux システムにufwまたはfirewalldがない場合は、 iptablesを使用する必要があります。インストールされていない場合は、選択したパッケージ マネージャーを使用して取得してください。インストールが完了すると、次のコマンドでポート 4000 が開きます。

sudo iptables -A INPUT -p tcp --dport 4000 -j ACCEPT sudo service iptables restart

システムがsystemctlを使用している場合は、2 番目のコマンドを次のように置き換えます。

sudo systemctl restart iptables

接続用に新しく開いたポートのテスト

次に、ポートをテストして、接続を受け入れることを確認する必要があります。これを行うには、netcat ( nc ) を使用してポートをリッスンし、次に telnet を試みます。

まず、ターミナル ウィンドウを開き、次のコマンドを発行します。

sudo ls | nc -l -p 4000

実行中 (リッスン中) のままにして、2 つ目のターミナル ウィンドウを開きます。そのウィンドウで、telnet を使用して接続をテストします。telnet がインストールされていない場合は、パッケージ マネージャーを使用してインストールしてください。

telnet [hostname/IP address] [port number]

[ホスト名/IP アドレス]をシステムの IP アドレスに、[ポート番号]を開いているポート番号に置き換えます。

telnet localhost 4000

以下のような出力が表示され、ncとの接続が開いていることが示されます。

Linux でポートを開く方法

nmapを使用して、ポートが開いていることを示すこともできます。繰り返しますが、コマンドがまだインストールされていない場合は、パッケージ マネージャーを使用して取得します。

nmap localhost -p 4000

Linux でポートを開く方法

nmapは、接続をリッスンしている開いているポートのみを一覧表示することに注意してください。そのため、テストに netcat を使用してそのポートをリッスンします。そうしないと、ポートは開いているものとして登録されません。

開いたばかりのポートに接続できません。

上記のすべての手順を実行してもポートに接続できない場合は、入力を再確認してください。すべてを正しく入力したことが確実な場合は、トラフィックを許可するようにネットワーク ルーターを再構成する必要がある可能性があります。

ネットワーク ルーターごとに設定画面が異なるため、特定の機器のサポート ページまたはユーザーズ マニュアルを参照してください。ポート フォワーディングまたはポート マッピングの設定、およびルーターが使用する組み込みのファイアウォールを確認する必要があります。

Linux でポートを永続的に開く方法

開いているポートをテストして動作していることを確認したら、おそらく変更を永続的にしたいと思うでしょう。そうしないと、再起動後に変更が反映されない場合があります。あなたが Ubuntu ユーザーであるか、そうでなければufwファイアウォールを使用している場合、これについて心配する必要はありません。ufwルールは再起動にリセットされません。

firewalld ユーザー向け

firewalldを使用すると、再起動後もポート規則を簡単に維持できます。—permanentフラグを最初のコマンドに追加するだけで、起動時に Linux システムのファイアウォール ルールに含まれます。

sudo firewall-cmd --add-port=4000/tcp --permanent

まだ iptables を使用している場合

iptablesファイアウォールははるかに面倒です (おそらく、firewalld または ufw にアップグレードする十分な理由です)iptablesでポートを「永続的に」開くには、 iptables-persistentパッケージをインストールすると役立ちます。

Debian ベースのシステムにiptables-persistentを初めてインストールすると、現在のルールが/etc/iptables/rules.v4または/etc/iptables/rules.v6に保存されます。新しいルールを追加するには、次のコマンドを発行します。

sudo iptables-save > /etc/iptables/rules.v4

また

sudo iptables-save > /etc/iptables/rules.v6

RPM ベースの Linux ディストリビューションを実行している場合は、少し異なります。パッケージはiptables-servicesと呼ばれ、保存ファイルは/etc/sysconfig/iptablesおよび/etc/sysconfig/ip6tablesです。

RPM ベースのディストリビューションでは、IPv6 ポートに使用される別のコマンドもあります。ルールを保存するには、次の 2 つのコマンドのいずれかを使用します。

sudo iptables-save > /etc/sysconfig/iptables sudo ip6tables-save > /etc/sysconfig/iptables

ポートの使用状況を必ず監視してください

時間が経つにつれて、サーバーのニーズは変化する可能性があります。Linux マシンのユーザー アカウントを常に把握しておく必要があるのと同様に、開いているポートも定期的に監査する必要があります。不要になった開いているポートを閉じます。パスワードを定期的に変更することは、システムへの侵入やセキュリティの悪用を防ぐのに役立つ優れたセキュリティ プラクティスです。

Tags: #HOW-TO

Leave a Comment

[解決済み]錆がクラッシュし続ける問題を修正する方法は?

[解決済み]錆がクラッシュし続ける問題を修正する方法は?

Rustに直面すると、起動時または読み込み中にクラッシュし続けます。その後、指定された修正に従って、Rushクラッシュの問題を簡単に停止します…

Intel Wireless AC 9560 が動作しない場合の 9 つの修正 (コード 10)

Intel Wireless AC 9560 が動作しない場合の 9 つの修正 (コード 10)

Intel Wireless AC 9560 コード 10 の修正方法について詳しく解説します。Wi-Fi および Bluetooth デバイスでのエラーを解決するためのステップバイステップガイドです。

「不明なソフトウェア例外(0xe0434352)」を修正するにはどうすればよいですか?

「不明なソフトウェア例外(0xe0434352)」を修正するにはどうすればよいですか?

Windows 10および11での不明なソフトウェア例外(0xe0434352)エラーを修正するための可能な解決策を見つけてください。

[フルガイド]Steamのファイル権限の欠落エラーを修正する方法は?

[フルガイド]Steamのファイル権限の欠落エラーを修正する方法は?

Steamのファイル権限がないエラーにお困りですか?これらの8つの簡単な方法で、Steamエラーを修正し、PCでゲームを楽しんでください。

Windows 10でアプリとプログラムが自動的に最小化される問題を修正する7つの方法

Windows 10でアプリとプログラムが自動的に最小化される問題を修正する7つの方法

PC での作業中に Windows 10 が自動的に最小化される問題の解決策を探しているなら、この記事ではその方法を詳しく説明します。

学生が学校でブロックされることを気にせずに最もよくプレイするゲーム トップ 10

学生が学校でブロックされることを気にせずに最もよくプレイするゲーム トップ 10

ブロックされることを心配せずに学生が学校で最もよくプレイするゲーム トップ 10。オンラインゲームの利点とおすすめを詳しく解説します。

ワードウォール

ワードウォール

Wordwallは、教師が教室のアクティビティを簡単に作成できるプラットフォームです。インタラクティブな体験で学習をサポートします。

[解決済み]Ntoskrnl.Exe高CPU使用率Windows10

[解決済み]Ntoskrnl.Exe高CPU使用率Windows10

この記事では、ntoskrnl.exeの高いCPU使用率を解決するための簡単な方法を紹介します。

VACを修正すると、8つの簡単な方法でゲームセッションエラーを確認できませんでした

VACを修正すると、8つの簡単な方法でゲームセッションエラーを確認できませんでした

VACを修正するための解決策を探していると、CSでのゲームセッションエラーを確認できませんでした:GO?次に、与えられた修正に従います

INTERNAL_POWER_ERROR(0x000000A0)を修正する方法

INTERNAL_POWER_ERROR(0x000000A0)を修正する方法

簡単に取り除くために、ソリューションを1つずつ実行し、Windows 10、8.1、8、および7のINTERNAL_POWER_ERRORブルースクリーンエラー(0x000000A0)を修正します。