
내 상황은 다음과 같습니다.
동일한 라우터에 있는 두 대의 컴퓨터(192.168.1.101 및 192.168.1.102)
제가 좋아하는 작업은 다음과 같습니다. 192.168.1.101에서 localhost로 포트 22에 액세스하는 동안 트래픽을 192.168.1.102 포트 22로 보냅니다.
즉, localhost의 모든 트래픽을 다른 로컬 IP로 전달하고 싶습니다.
나에게 필요한 솔루션이 있나요?
답변1
Windows를 사용하는 경우 다음 명령을 사용할 수 있습니다.
netsh interface portproxy add v4tov4 listenaddress=192.168.1.101 listenport=21 connectaddress=192.168.1.102 connectport=21
바꾸다:
21
전달하려는 포트로192.168.1.101
당신의 IP로,192.168.1.102
목적지 IP와 함께.
답변2
localhost의 의미를 재정의하지 마십시오. 당신은 놀라운 방법으로 일을 망칠 것입니다.
-L
대신 의 및 -R
옵션을 살펴보세요 ssh(1)
. 이를 통해 로컬 시스템의 포트를 원격 시스템의 IP 주소 및 포트로 쉽게 리디렉션할 수 있습니다. 또한 터널은 SSH로 보호됩니다.
이러한 터널은 반드시 SSH/셸 트래픽에만 국한되는 것은 아닙니다. 임의의 트래픽을 위한 것일 수 있습니다.
답변3
그것이 현명한 일인지 확실하지 않습니다. 로컬 컴퓨터에서 실행되도록 의도된 많은 서비스는 127.0.0.1
(변경 사항에 문제가 없음) 또는 localhost
(변경 사항이 문제를 일으킬 수 있음) 동일한 컴퓨터의 다른 서비스에 연결하는 데 사용됩니다. 그리고 다른 많은 패키지도 이런 식으로 구성되어 있습니다.
목적이 동일한 이름을 사용하여 십자형으로 연결하는 것이라면 어떤 컴퓨터에 관계없이 다른 이름을 사용하는 것이 좋습니다. 예를 들어 "localhost" 대신 "crosshost"를 사용할 수 있습니다. 그러면 Indrek이 제공한 힌트를 따릅니다. hosts
파일을 확인하세요(Linux/Unix 및 아마도 Mac에서도 그럴 수 있습니다. /etc/hosts
Windows에서는 C:\Windows\System32\drivers\etc\hosts
확장자가 없습니다. 주의하세요. Windows에서는 일반적으로 해당 디렉터리에 다른 hosts.*
파일이 이미 있습니다.아니다해당 행을 주석 처리 127.0.0.1 localhost
하거나 수정하지 말고 그대로 두십시오. 한 줄만 추가하세요.
192.168.1.101 crosshost
192.168.1.102 시스템에서, 다른 시스템의 다른 주소와 유사하게. 이제 ssh crosshost
다른 컴퓨터에서 한 컴퓨터에 연결하거나 을(를) 사용하여 파일을 복사하는 scp filename.ext crosshost:/path/to/put
등 원하는 대로 작업할 수 있습니다.