port-forward — Linux ポート転送マネージャ
概要
port-forward は、Linuxサーバ上でポート転送(ポートフォワーディング)を手軽に導入・管理できるシェルスクリプト群です。iptables や HAProxy、socat、gost、realm、rinetd、nginx stream といった7つの転送手段をサポートし、スクリプト実行で依存パッケージの導入、サービス設定、カーネル/ネットワークパラメータの最適化(BBR 有効化や TCP Fast Open、バッファ増強など)を自動化します。対話式のCLIでルールの追加・削除・一覧表示・遅延計測・設定のバックアップ/復元が可能で、複数方式の共存も想定しています。主に Debian/Ubuntu 系で検証されており、手早くポート転送環境を用意したい運用者や開発者に向くユーティリティです。
リポジトリの統計情報
- スター数: 14
- フォーク数: 4
- ウォッチャー数: 14
- コミット数: 3
- ファイル数: 2
- メインの言語: Shell
主な特徴
- 7つの転送方式を選択可能:iptables / HAProxy / socat / gost / realm / rinetd / nginx stream
- ワンコマンドで自動インストールと設定、カーネル最適化(BBR 等)を実行
- 対話式カラーメニューでルール管理、状態監視、遅延チェック、設定のバックアップ/復元が可能
- 異なる転送方式の同時運用をサポートし、柔軟な運用が可能
技術的なポイント
port-forward はシンプルなシェル実装ながら、実用上の課題を実行時にまとめて解決する設計が特徴です。まず転送方式について、iptables と rinetd のようなカーネル寄り(L3/L4)実装から、HAProxy と nginx stream によるプロキシ型(L4/L7)までをカバーしており、ユースケースに応じて透過的な転送や負荷分散、TLS終端などの機能を選べます。socat や gost はトンネリングや多様なプロトコルのハンドリングに便利で、軽量用途や簡易なプロキシに適します。
ネットワーク性能改善に関しては、スクリプトが典型的な sysctl 調整を行い、BBR(Bottleneck Bandwidth and RTT)の有効化、TCP Fast Open の設定、受信/送信バッファ(net.core.rmem_max / wmem_max 等)の拡大、net.ipv4.tcp_congestion_control の切替といった項目を自動化します。これにより高遅延環境や高並列接続下でもスループットを改善できます。スクリプトは依存バイナリの自動インストール(apt/yum など)や systemd サービスの生成・有効化といった運用作業を省力化し、導入ミスによる不整合を減らします。
運用面では、複数の転送ルールを一覧化して管理できる機能や、各ルールに対する遅延(ping/tcping 等での簡易チェック)を提供する点が便利です。設定の自動バックアップと復元機能があり、誤操作やアップデート後の復帰を容易にします。セキュリティ面の配慮としては、root 権限での実行を前提とするため実行前の注意喚起やログ出力の整備が重要ですが、対話式メニューで操作を確認できるため誤設定の抑止に寄与します。
互換性は Debian 10/11/12、Ubuntu 20.04/22.04/24.04 を主に想定しており、CentOS 7 は限定的にサポートされています。シェルスクリプトのためカスタマイズや拡張が容易で、環境に合わせた小さな調整(例えば systemd ユニットテンプレートの追加やnginx/haproxyの細かい設定チューニング)も導入しやすい点が、運用現場での採用を後押しします。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file — 機能概要、サポート環境、使い方や注意点を記載したドキュメント。導入手順や対応する転送方式の一覧が含まれます。
- port_forward.sh: file — メインの実行スクリプト。対話式メニュー、依存関係のインストール、転送ルールの追加/削除/一覧表示、sysctl の最適化といった主要機能を実装しています。
ファイル数が少なく設計がシンプルなので、まずはスクリプトを読み込んで動作を把握し、必要に応じて自分の運用ルールに合わせて改変するのが良いでしょう。
まとめ
手軽に複数の転送方式を試せて、導入と最適化を自動化する実用的なシェルツールです。