CentOS7.6イントラネット浸透サービスlanproxyの展開

多くのシナリオで、イントラネットの浸透は私たちが頻繁に遭遇する要件です。以前はピーナッツシェル、ngrok、FRPなどのツールを使用していましたが、制限速度、料金、安全性などのさまざまな要因により、あきらめる。

最近、オープンソースツールの「Portal:lanproxy」を偶然目にしたのですが、Huaweiクラウドホストサーバーを無料で購入したところ、イントラネットへの浸透が可能になりました。

I.概要

1.イントラネット浸透サービスとは

イントラネット侵入、つまりネットワーク接続に使用される用語であるNAT侵入コンピュータがローカルエリアネットワークにある場合、外部ネットワークと内部ネットワークのコンピュータノードを接続して通信する必要があります。イントラネット侵入がない場合もあります。サポートされています。

2.lanproxyとは

lanproxyは、LANパーソナルコンピュータとサーバーをパブリックネットワークにプロキシするイントラネット侵入ツールです。現在、tcpトラフィック転送のみをサポートし、任意のtcp上位レベルプロトコル(イントラネットWebサイトへのアクセス、ローカル支払いインターフェイスのデバッグ、sshアクセス、リモートデスクトップ...)。現在、同様のサービスを提供するピーナッツシェル、TeamView、GoToMyCloudなどが市場に出回っていますが、サードパーティのパブリックネットワークサーバーを使用するには、サードパーティの料金を支払う必要があり、これらのサービスにはさまざまな制限があります。 、データパッケージが原因でサードパーティを経由するため、データセキュリティに対する大きな隠れた危険性もあります。https://lanproxy.io2c.com

3.イントラネット浸透の原則

イントラネットの浸透の原理を次の図に示します。
[外部リンク画像の転送に失敗しました。ソースサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-gCHdOBVS-1617254316954)(./ 210401-113813.png)]

  1. ユーザーが私たちのサーバーにアクセスします。このサーバーにはパブリックIPがあるため、ユーザーはプレッシャーなしでアクセスできます。
  2. サーバーはローカルコンピューターとの長いリンクを維持します。リクエストがあると、サーバーはリクエストをローカルコンピューターに転送します。
  3. ローカルコンピューターがサーバーに応答します
  4. サーバーはユーザーに応答を応答します

2.展開を開始します

1.環境を準備します

ホスト IP 役割 君は サービス
インターネットヤンブ インターネットIP クラウドサーバー centos 7.6 docker(より多くの構成を簡素化し、dockerコンテナーを使用してここにビルドします);
Nginx環境
滴滴出行 イントラネットIP イントラネットPC centos 7.6 Java JDK 1.8
Maven(パッケージ依存関係管理ツール)

2.パブリックネットワークサーバーの構成(docker)

2.1基本環境にdockerとnginxをデプロイする

1、安装依赖包
[root@internet-yanmb ~]# yum install -y yum-utils  device-mapper-persistent-data  lvm2

2、安装
[root@internet-yanmb ~]#  yum install docker nginx

3、启动doker、nginx
[root@internet-yanmb ~]# systemctl start docker && systemctl enable docker
[root@internet-yanmb ~]# systemctl start nginx && systemctl enable nginx 

2.2Dockerを介してlanproxyサービスを開始します

[root@internet-yanmb ~]# docker run -d --name lanproxy-server -p 8090:8090 -p 4900:4900 -p 4993:4993 -p 9000-9100:9000-9100  --restart=always biodwhu/lanproxy

[外部リンク画像の転送に失敗しました。ソースサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-t4dX4cyz-1617254316970)(./ 210401-120810.png)]

2.3パブリックネットワークサーバーのIPを入力します:8090

デフォルトのパスワードadmin / admin
[外部リンク画像の転送に失敗しました。ソースサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-qUG7MiHj-1617254316972)(./ 210401-121109.png)]

2.4 Nginxリバースプロキシ構成ドメイン名(オプション)

前の手順では、dockerを介してlanproxy環境を開始しましたが、IPアドレスを介してのみアクセスできます。Nginxリバースプロキシの構成は、ドメイン名アクセス機能のみを提供します。

vim /etc/nginx/conf.d/lanproxy.didi.cn.conf

server {
    
    
    listen 80;
    # 这里使用自己的域名
    server_name lanproxy.didi.com;
    charset utf-8;
    location / {
    
    
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        # 这里根据你的 lanproxy 配置,改成 config.server.port的值
        proxy_pass       http://127.0.0.1:8090;
        client_max_body_size 35m;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

イントラネットサービスプロキシ
vimなどを構成します/nginx/conf.d/kodcloud.didi.cn.conf

server {
    
    
    listen 80;
    # 这里使用自己的域名
    server_name kodcloud.didi.cn;
    charset utf-8;
    location / {
    
    
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        # 这里根据你的lanproxy配置,改成 外网接口 的值,在lanproxy后台网页上配置,后面配置
        proxy_pass       http://127.0.0.1:9000;
        client_max_body_size 35m;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}


127.0.0.1:ポートこれらのポートを使用できます
[外部リンク画像の転送に失敗しました。ソースサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-1srFf7pE-1617254316976)(。/210401-123147.png)]

Nginxを再起動します

systemctl restart nginx

2.5lanproxyバックグラウンドサービスの構成を続行します

クライアントを構成する
[外部リンク画像の転送に失敗しました。ソースサイトにリーチング防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-3Dm9Xdkg-1617254316977)(./ 210401-122610.png)]

構成を追加する
[外部リンク画像の転送に失敗しました。ソースサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-jJe0ltxe-1617254316979)(./ 210401-123527.png)]

3.イントラネットPC構成(Javaクライアント)

3.1jdk1.8環境をインストールします

# jdk下载地址
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

tar -zxvf jdk-8u281-linux-x64.tar.gz -C /usr/local/

# 配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_281/
export JRE_HOME=${JAVA_HOME}/jre    
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib    
export PATH=${JAVA_HOME}/bin:$PATH

# 执行命令使修改立即生效
source /etc/profile

# 验证
java -version

# 配置软连接
update-alternatives --install /usr/bin/java  java  /usr/local/jdk1.8.0_181/java 300   
update-alternatives --install /usr/bin/javac  javac  /usr/local/jdk1.8.0_181/bin/javac 300 

3.2Maven環境をインストールする

http://maven.apache.org/download.cgimavenをダウンロードします。

# 下载maven
wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

# 解压到/opt/maven 目录
mkdir /opt/maven
tar zxvf apache-maven-3.6.0-bin.tar.gz -C /opt/maven

# 配置maven 配置环境变量
vim /etc/profile
export M2_HOME=/opt/maven/apache-maven-3.6.3
export CLASSPATH=$CLASSPATH:$M2_HOME/lib
export PATH=$PATH:$M2_HOME/bin

# 执行命令使修改立即生效
source /etc/profile

# 验证
mvn -v

# 修改 maven 源为阿里云,以及仓库默认存放路径。这样 maven 下载 jar 包的速度会快很多。添加如下参数

<localRepository>maven/reposity</localRepository>
----------------------------------------------------
   <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
----------------------------------------------------
vim /opt/maven/apache-maven-3.6.3/conf/settings.xml

ここにコードスニペットを挿入します[外部リンク画像の転送に失敗しました。ソースサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-WBoVPTAV-1617254316982)(./ 210401-124920.png)]
ここに画像の説明を挿入

イントラネットサービスが真実で効果的であることを確認します
ここに画像の説明を挿入

3.3lanproxyクライアントサービスを実行する

# 克隆到内网电脑
mkdir /appstorage/ && cd /appstorage
git clone https://github.com/ffay/lanproxy.git lanproxy
# 打包
cd lanproxy
mvn package

パッケージ化が完了すると、クライアントファイルがdistribution / proxy-client-0.1ディレクトリに表示されます。開くと、bin、conf、lib、logのフォルダが作成されます。構成情報はconf /config.propertiesにあります。前のサーバーによると、構成情報を変更します。

vimディストリビューション/proxy-client-0.1/conf/config.properties

# 这里是在lanproxy后台配置的密钥
client.key=ca670d0e95fb4ad68626d174ed357efe

# 配置ssl信息,根据服务端的配置填写(enable = false 就不需要配置)
ssl.enable=false
ssl.jksPath=test.jks
ssl.keyStorePassword=123456

# 服务器的ip
server.host=123.60.x.x

#proxy-server ssl默认端口4993,默认普通端口4900
#ssl.enable=true时这里填写ssl端口,ssl.enable=false时这里填写普通端口
server.port=4900

クライアントの開始

cd distribution/proxy-client-0.1/conf
bash  bin/startup.sh

# 设置开机自启动
echo "/usr/bin/bash  bin/startup.sh" >> /etc/rc.local 
chmod a+x /etc/rc.d/rc.local 

4.クライアントテストアクセス

ローカルホストはkodcloud.didi.cnを解決します

ここに画像の説明を挿入

成功

IPアドレス
:9000を介してパブリックネットワークIPにアクセスすることもできます
ここに画像の説明を挿入

5.内部ネットワークはPCの22ポートを貫通します

5.1 jupyterを入力してプロキシルールを追加し、パブリックネットワークIPにアクセスします:ポート

[外部リンク画像の転送に失敗しました。ソースサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-LvX3BbOc-1617254316989)(./ 210401-131437.png)]

5.2検証

[外部リンク画像の転送に失敗しました。ソースサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-Hd3zWSJt-1617254316990)(./ 210401-131728.png)]

おすすめ

転載: blog.csdn.net/weixin_43357497/article/details/115371796