イントラネットの侵入: FRP を使用してパブリック サーバーとイントラネット サーバーを構成します

ユニットのパブリック ネットワーク IP はまだ申請されていませんが、テストのためにプロジェクトをオンラインにする必要があります。現状では、研究機関内のWIFIに接続すればプロジェクトのWebサイトやインターフェースにアクセスできますが、これをイントラネットアクセスやLANアクセスといいますが、開発者が帰宅するとアクセスできなくなりますので、パブリックネットワークIPを開放する前に、まず、イントラネット侵入を使用して、外部ネットワークがプロジェクトにアクセスできるようにします。

イントラネットの浸透

いわゆるイントラネットの侵入とは、イントラネットの特定のインターフェイスとサービスを外部ネットワーク アクセスに公開することを指します。

イントラネットの侵入が必要なシナリオは次のとおりです。

  • この世界の IPv4 は制限されており、現在では非常に不十分です。v6 が普及する前は、家庭用ブロードバンドとほとんどの企業ブロードバンドは動的 IP を使用していました。これは、チャイナ テレコムが IP プールを予約し、ブロードバンドがオンラインになったときにパブリック ネットワーク IP を割り当てることを意味します。ブロードバンドがオフラインになると、IP はリサイクルされます。したがって、自宅のブロードバンドの IP アドレスは決定することが難しく、動的です。この IP は、Baidu で直接 IP を検索できます。
  • 家族や職場に複数のデバイスがあるため、これらのデバイスをすべてオンラインにする必要があるため、前の記事で説明したパブリック ネットワーク IP をイントラネットにマッピングし、ルーターとゲートウェイを介してネットワークを複数の回線 (有線、無線) に分割します。デバイス ) は、インターネットにアクセスする必要がある各デバイスに割り当てられます。これらのデバイスは同じイントラネットに属し、ルーターによって管理されます。通常、それらは 192.168.xx です。このような IP を内部ネットワーク IP と呼び、前回の記事で最終的に要約してパブリック ネットワーク IP (動的) に送信します。

質問:

  • イントラネット IP を持つこれらのデバイスは、外部ネットワーク、つまりインターネットにアクセスできます。
  • これらのデバイスは、イントラネット IP: 192.168.xx を通じて相互にアクセスできます。
  • これらのデバイスには外部ネットワークからアクセスできず、他のユーザーがブラウザに 192.168.xx などの IP を入力することもできません。
  • デバイスの実際の IP をクエリすると (たとえば、Baidu が自分の IP をクエリする)、すべてのデバイスが同じ IP を持っていることがわかります。そのため、パブリック ネットワークからは、これらのリクエストは同じ IP (パブリック ネットワーク) から送信されます。ブロードバンドに割り当てられた IP。
  • 前回の記事、パブリックネットワークのIPが変わります!そのため、ルーターを使用してポートをパブリック ネットワーク IP にマッピングした場合でも、アクセスの適時性の問題が発生する傾向があります。特にドメイン名がバインドされている場合、変更し続けるとDNSも常に変更されることになり、DNSがキャッシュされている場合は解決策がありません。

イントラネット侵入を使用して次のことを解決します。

  • 固定パブリックIP、静的IPが必要です
  • クライアントとサーバーを含むポイントツーポイント通信を実行できる貫通ソフトウェアが必要です
  • クライアントがネットワーク環境をどのように変更してもサーバーにアクセスできるため、静的IPを持つデバイスをサーバーとして設定します
  • リクエストをサーバー (パブリック ネットワーク IP) に送信し、サーバーは侵入ソフトウェアを通じてクライアントと通信し、リクエストをクライアントに割り当てます。
  • クライアントとは、イントラネット上のサーバーを指します。
  • これらの内部ネットワーク サーバーには、パブリック ネットワーク上のサーバーを介して外部ネットワークからアクセスできます。
  • パブリックネットワークサーバーはリバースプロキシに相当します

構成の浸透

ユニットのサービスを外部ネットワーク アクセスに公開し、ユニットを離れるときにプロジェクト サービスにアクセスできない問題を解決するための侵入ソフトウェアである frp を例に挙げてみましょう。

クラウドサーバー

Alibaba Cloud サーバーや Tencent Cloud サーバーなど、静的パブリック IP を持つクラウド サーバーを購入します。以下では例として ubuntu 18.04 を使用します。

ここにアクセスして FRP パッケージをダウンロードします。

https://github.com/fatedier/frp/releases

wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz
tar -xvf 包名

サーバーを構成し、frps.ini を編集します

[common]
bind_port = 7000
dashboard_port = 7500
# dashboard's username and password are both optional,if not set, default is admin.
dashboard_user = admin
dashboard_pwd = admin

1 つ目は frp によって使用されるポートで、パブリックおよびイントラネット通信に使用されます。

2 つ目はコントロール パネルのポートです。この URL にアクセスすると、frp の実行ステータスを確認できます。

frp サービスのテスト開始:

./frps -c ./frps.ini

ここで frps が開始されていることに注意してください。これは frp サーバーを意味し、他の frpc はクライアントを意味します。これについては後述します。

起動時にFRPを起動する

sysytemd の下の frps.service を変更します。

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Restart=on-failure
RestartSec=5s
ExecStart=/root/frp/frps -c /root/frp/frps.ini

[Install]
WantedBy=multi-user.target

ここでは、frp プログラムのディレクトリ名が frp に変更され、root ユーザー ディレクトリに配置されているため、ExecStart を frp が配置されているアドレスに変更する必要があります。

保存して終了し、編集したサービス ファイルを systemd/system サービスにコピーします。

cp ./systemd/frps.service /etc/systemd/system/

サービスを開始します。

#刷新服务列表:
systemctl daemon-reload

#设置开机自启
systemctl enable frps
#关闭开机自启
systemctl disable frps

#启动服务
systemctl start frps
#停止服务
systemctl stop frps

これまでのところ、パブリック ネットワーク上のサーバーが構成され、起動するように追加されました。

イントラネットサーバー

同様に、イントラネット サーバー用に frpc.ini を構成する必要があります。

frpc の c はクライアントを意味します

[common]
server_addr = 10.220.23.66
server_port = 7000

[ssh http]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 8000

# [ssh http2]
# .....

ここで、local_ip はローカル IP、localhost は通常変更する必要はありません、local_port は LAN 内でこのサーバーによって公開されるポートです。ここでは 80 の例を示します。remote_port はパブリック ネットワーク サーバーにアクセスするためのポートです。 8000の例。これは、10.220.23.66:8000 にアクセスすると、イントラネット上のポート 192.168.xx:80 にマッピングされることを意味します。したがって、内部ネットワーク サーバーのポート 80 でサービスを実行する必要があり、外部ネットワークにはペネトレーションを通じてアクセスできます。

他のポートについても同様で、複数の SSH を構成して、複数のサービスを外部ネットワークにマッピングできます。

スタートアップを構成します。

同様に、systemd の下の frpc.service を変更します。

[Unit]
Description=Frp Client Service
After=network.target
Wants=network.target

[Service]
Restart=on-failure
RestartSec=5s
ExecStart=/home/devil/App/frp/frpc -c /home/devil/App/frp/frpc.ini
ExecReload=/home/devil/App/frp/frpc reload -c /home/devil/App/frp/frpc.ini

[Install]
WantedBy=multi-user.target

それをシステム systemd にコピーします。

cp ./systemd/frpc.service /etc/systemd/system/

完了!このようにすると、LAN から離れた後もアクセスできます。

おすすめ

転載: blog.csdn.net/u014466109/article/details/110867996