인트라넷 침투: frp를 사용하여 공용 및 인트라넷 서버 구성

장치의 공용 네트워크 IP가 아직 적용되지 않았지만 테스트를 위해 프로젝트를 온라인 상태로 전환해야 합니다. 현재는 연구기관에서 WIFI에 접속하여 프로젝트 웹사이트나 인터페이스에 접속할 수 있는 상태이며 이를 인트라넷 접속 또는 LAN접속이라 하며 개발자가 집에 가면 접속할 수 없기 때문에 공용망 IP를 개방하기 전에 먼저 인트라넷 침투를 사용하여 외부 네트워크가 우리 프로젝트에 액세스할 수 있도록 합니다.

인트라넷 침투

소위 인트라넷 침투는 인트라넷의 특정 인터페이스와 서비스를 외부 네트워크 액세스에 노출시키는 것을 말합니다.

인트라넷 침투가 필요한 시나리오는 다음과 같습니다.

  • 이 세상의 IPv4는 제한되어 있으며 현재 심각하게 부족합니다.v6가 대중화되기 전에 가정용 광대역과 대부분의 기업 광대역은 동적 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가 필요합니다.
  • 클라이언트와 서버를 포함하여 point-to-point 통신을 수행할 수 있는 관통 소프트웨어가 필요합니다.
  • 클라이언트가 네트워크 환경을 어떻게 바꾸든 서버에 접속할 수 있으므로 고정 IP를 가진 장치를 서버로 설정
  • 서버(공용 네트워크 IP)에 요청을 보내고 서버는 침투 소프트웨어를 통해 클라이언트와 통신하고 요청을 클라이언트에 할당합니다.
  • 클라이언트는 인트라넷의 서버를 가리킵니다.
  • 이러한 내부 네트워크 서버는 공용 네트워크의 서버를 통해 외부 네트워크에서 액세스할 수 있습니다.
  • 공용 네트워크 서버는 리버스 프록시와 동일합니다.

구성 침투

우리 단위의 서비스를 외부 네트워크 액세스에 노출하고 단위를 떠날 때 프로젝트 서비스에 액세스할 수 없는 문제를 해결하는 침투 소프트웨어인 frp를 예로 들어 보겠습니다.

클라우드 서버

Alibaba Cloud 및 Tencent Cloud 서버와 같은 고정 공용 IP로 클라우드 서버를 구입하십시오. 다음은 우분투 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

첫 번째는 공용 및 인트라넷 통신에 사용되는 frp에서 사용하는 포트입니다.

두 번째는 제어판 포트이며, 이 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로 변경되어 루트 사용자 디렉토리에 배치되었으므로 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