>  기사  >  운영 및 유지보수  >  리눅스에서 포트를 전달하는 방법

리눅스에서 포트를 전달하는 방법

WBOY
WBOY원래의
2022-01-27 14:02:1912893검색

방법: 1. SSH 포트 전달 사용 2. iptables 포트 전달 사용 4. rinetd 포트 전달 사용 6. socat 포트 전달 사용 8. portfwd 포트 포워딩 등을 사용하세요.

리눅스에서 포트를 전달하는 방법

이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.

Linux에서 포트 포워딩하는 방법

1. SSH 포트 포워딩

SSH는 SSH 링크를 통해 다른 TCP 포트의 네트워크 데이터를 포워딩할 수 있는 매우 흥미로운 기능을 제공하며 해당 암호화 및 암호화 기능을 자동으로 제공합니다. 암호 해독 서비스.

(1) 로컬 포트 ​​전달

ssh -fgN -L 2222:localhost:22 localhost

(2) 원격 포트 전달

ssh -fgN -R 2222:host1:22 localhost

(3) 동적 전달

ssh -fgN -D 12345 root@host1

2.iptables 포트 전달.

CentOS 7.0에서는 iptables를 통해 구현할 수 있습니다. 데이터 패킷 전달

(1) 데이터 전달 기능 켜기

vi /etc/sysctl.conf    
  #增加一行 net.ipv4.ip_forward=1 
//使数据转发功能生效 
sysctl -p

(2) 로컬 포트를 로컬 포트로 전달

iptables -t nat -A PREROUTING -p tcp --dport 2222 -j REDIRECT --to-port 22

(3) 로컬 포트를 다른 머신으로 전달

iptables -t nat -A PREROUTING -d 192.168.172.130 -p tcp --dport 8000 -j DNAT --to-destination 192.168.172.131:80 
iptables -t nat -A POSTROUTING -d 192.168.172.131 -p tcp --dport 80 -j SNAT --to 192.168.172.130 
#清空nat表的所有链 
iptables -t nat -F PREROUTING

3. 전달

CentOS 7.0 이상에서는 명령줄 구성을 통해 포트 전달을 구현하는 방화벽을 사용합니다.

(1) 위장된 IP 활성화

firewall-cmd --permanent --add-masquerade

(2) 로컬 시스템의 포트 12345에 대한 액세스를 다른 서버의 포트 22로 전달하도록 포트 전달을 구성합니다.

firewall-cmd --permanent --add-forward-port=port=12345:proto=tcp:toaddr=192.168.172.131:toport=22

(3) 다시 로드하여 무효화

firewall-cmd --reload

4.rinetd 포트 전달

rinetd는 간단한 구성으로 포트 매핑/전달/리디렉션을 수행할 수 있는 경량 TCP 전달 도구입니다.

(1) 소스 코드 다운로드

wget https://li.nux.ro/download/nux/misc/el7/x86_64/rinetd-0.62-9.el7.nux.x86_64.rpm

(2) rinetd

rpm -ivh rinetd-0.62-9.el7.nux.x86_64.rpm
설치

(3) 구성 파일 편집

vi rinetd.conf  
    0.0.0.0 1234 127.0.0.1 22

(4) 포워딩 시작

rinetd -c /etc/rinetd.conf

5.ncat 포트 포워딩

netcat(통칭) nc)는 네트워크 보안 세계에서 "Swiss Army Knife"로 알려진 간단하고 유용한 도구입니다. 다음은 netcat을 사용하여 포트 전달을 구현하는 방법입니다.

(1) ncat

yum install nmap-ncat -y

설치(2) 로컬 포트 ​​9876을 수신하고 192.168.172.131

ncat --sh-exec "ncat 192.168.172.131 80" -l 9876  --keep-open

6의 포트 80으로 데이터를 전달합니다. socat 포트 전달

socat은 다기능 네트워크 도구입니다. . 포트 포워딩에는 socat을 사용하세요.

(1) socat 설치

yum install -y socat

(2) 로컬에서 포트 12345를 수신하고 요청을 192.168.172.131의 포트 22로 전달합니다.

socat TCP4-LISTEN:12345,reuseaddr,fork TCP4:192.168.172.131:22

7. portmap 포트 포워딩

Linux 버전의 인트라넷 포트 포워딩 도구입니다.

(1) 다운로드 주소: http://www.vuln.cn/wp-content/uploads/2016/06/lcx_vuln.cn_.zip

(2) 로컬 1234 포트를 듣고 22개의 포트로 전달합니다. 192.168.172.131 Port

/portmap -m 1 -p1 1234 -h2 192.168.172.131 -p2 22

8.portfwd 포트 포워딩

portfwd는 미터프리터에 내장된 기능이며, TCP/UDP 포트 포워딩 서비스를 위한 독립형 버전도 제공합니다

Github 프로젝트 주소: https:/ /github.com/rssnsj /portfwd

(1) 다운로드 및 컴파일

git clone https://github.com/rssnsj/portfwd.git

cd portfwd/src

make

(2) 로컬 전달 12345 포트에서 192.168.172.131 :22

./tcpfwd 0.0.0.0:12345 192.168.172.131:22

9. NATBypass 포트 전달

golang에서 lcx(htran) 구현

Gihub 프로젝트 주소: https://github.com/cw1997/NATBypass

내부 네트워크 호스트가 외부 세계에 적극적으로 연결합니다. 네트워크 호스트가 터널을 엽니다.

대상 머신에서 실행: nb -slave 127.0.0.1:3389 공용 네트워크 IP: 51

공용 네트워크 머신에서 실행: nb -listen 51 3340

공용 네트워크 호스트 0.1:3340에 127.0을 연결하면 인트라넷 머신의 3389 포트에 연결할 수 있습니다.

관련 추천: "Linux 비디오 튜토리얼"

위 내용은 리눅스에서 포트를 전달하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.