前の記事私達の中にアーティファクト内のネットワークの浸透ホーム_MAC、RDPから在宅勤務実装、windows_ Huangteng暁さんのブログ-CSDNブログはfrp--のTCP FRPモードを使用する方法について説明し、パブリックネットワークTCPにおける内部ネットワークデバイスへの暴露サービス。また、この技術に基づいてリモートデスクトップサービスの内部ネットワークアクセスデバイスを可能にします。今日は、このように既存の問題を分析し、解決策を参照することができます。
TCPモードのFRP問題
ここでは、2つの主要な問題があります。
最初は安全です。
想像して、あなたのデバイスのFRP TCPモードは、直接、公衆網へのTCPポートの同等にさらされます。任意のデバイスは、このポートを接続しようとすることができます。ここでは、偉大なセキュリティ上のリスクになります。
第二の問題は、ネットワークの問題です:
すべての私の要求はトランジットのためにFRPサーバーである必要があり、比較的大規模なネットワークの遅延を引き起こすことがバインドされています。我々のサービス応答速度に大きな影響をもたらすであろう(特に、当社VPSのほとんどは海外展開されています)。
アドレスセキュリティ上の問題(STCP)モード
セキュリティのために、FRPアイデアは、これらのサービスはおそらく悪い連中が攻撃されることになるため、であり、我々は、このポートだけで罰金を使用する特定のデバイスを制限する限りとしてその。
質問があるので、どのように私はそれを使用することを許可されているデバイスを知っていますか?
サーバーの構成?彼は、ネットワークの浸透内の問題に落ちました。
最も簡単な方法は、鍵認証を使用することです。これはFRP秘密TCP(STCP)モードの考えです。
以下に示すように、FRPクライアント1つのニーズは、TCPポートを公開します。サーバーへの登録時に、彼は、追加のキーを渡します。
他のすべてのデバイスは、あなたが最初のキーを確認する必要があり、このポートにアクセスすることを望みます。
その結果、我々はまた、クライアントが開始キーとの要求によって開始デバイスFRP要求にクライアントを設定する必要があります。
構成する方法
- サーバー:デフォルトの設定は、同じ設定ではまだですが、直接実行することができます
- クライアント1:STCP、フィールドSKを追加するためのコンフィギュレーションタイプの必要性。それが開示されていないので、必要遠位ポートは、ありません
# frpc.ini
[common]
# 你的frp服务器的公网ip
server_addr = x.x.x.x
# 你的frp服务器的默认端口
server_port = 7000
[rdp]
type = stcp
# 只有 sk 一致的用户才能访问到此服务
sk = abcdefg
local_ip = 127.0.0.1
# 远程桌面的本地端口号
local_port = 3389
- クライアント2:
# frpc.ini
[common]
# 你的frp服务器的公网ip
server_addr = x.x.x.x
# 你的frp服务器的默认端口
server_port = 7000
[rdp_visitor]
type = stcp
# stcp 的访问者
role = visitor
# 要访问的 stcp 代理的名字
server_name = rdp
# 只有 sk 一致的用户才能访问到此服务
sk = abcdefg
# 绑定本地端口用于访问 远程桌面 服务
bind_addr = 127.0.0.1
bind_port = 6000
この時点で、あなたはサービス127.0.0.1:6000 1にアクセスするためのリモートクライアントを使用して、クライアント2です。
ネットワークの問題を解決(xtcp)モード
主な目的はお互いを認識する2つのデバイスのケースを解決することであり、当社のFRPサーバを考えてみて。公式の走行時間では、実際にあなたが何かをするサーバーを必要としません。
frp客户端就好比两个相亲的对象,frp服务端是媒婆。媒婆介绍完之后,就应该有相亲对象自己聊天了。
这个就是点对点模式(p2p)。在frp中,这个可以通过设置xtcp实现。
如何配置
- 服务端:配置需要增加一个udp端口 7001,增加完之后就是如下
# frps.ini
[common]
bind_port = 7000
bind_udp_port = 7001
- 客户端1:配置需要将type改为xtcp即可
# frpc.ini
[common]
# 你的frp服务器的公网ip
server_addr = x.x.x.x
# 你的frp服务器的默认端口
server_port = 7000
[rdp]
type = xtcp
# 只有 sk 一致的用户才能访问到此服务
sk = abcdefg
local_ip = 127.0.0.1
# 远程桌面的本地端口号
local_port = 3389
- 客户端2:配置需要将type改为xtcp即可
# frpc.ini
[common]
# 你的frp服务器的公网ip
server_addr = x.x.x.x
# 你的frp服务器的默认端口
server_port = 7000
[rdp_visitor]
type = xtcp
# stcp 的访问者
role = visitor
# 要访问的 stcp 代理的名字
server_name = rdp
# 只有 sk 一致的用户才能访问到此服务
sk = abcdefg
# 绑定本地端口用于访问 远程桌面 服务
bind_addr = 127.0.0.1
bind_port = 6000
此时,你在客户端2,使用同样的方式,以127.0.0.1:6000即可访问客户端1的远程服务。
不过需要注意的是,目前frp的p2p服务还不完善,很多nat设备还是不能够穿透的。
此时大家还是需要切换回stcp来使用。
参考文档:
- 2020-1-7-如何使用mac电脑连接你的windows设备 - huangtengxiao
- frp/README_zh.md at master · fatedier/frp
- 2020-1-10-内网穿透神器frp - huangtengxiao
- fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
- 内网穿透神器frp——实现在家远程办公_mac,rdp,windows_黄腾霄的博客-CSDN博客
本文会经常更新,请阅读个人博客原文: https://xinyuehtx.github.io/ ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
この作品は、ある非営利- -同一条件許諾4.0の国際ライセンス契約クリエイティブ・コモンズのライセンスのために。転載、使用、再投稿が、(リンクを含む:黄Tengxiaoによって署名記事に保つようにしてくださいへようこそhttps://xinyuehtx.github.io/は)、紙のライセンス変更に基づいて、同じ作業を公開するようにしてください、商業目的のために使用してはなりません。ご質問があれば、してください私に連絡。