다른 호스트를 통해 호스트의 네트워크 트래픽을 라우팅하는 방법은 무엇입니까?


9

회사 네트워크의 시스템 관리자는 아니지만 루트에 액세스 할 수있는 두 개의 Linux 워크 스테이션 (호스트 A 및 B)이 있습니다.

두 호스트 모두 서로를 잘 볼 수 있습니다 (ssh, ping 등은 서로간에 작동합니다). 그러나 호스트 A 만 회사 방화벽에서 접근하여 인터넷 등에 액세스 할 수 있습니다. 호스트 B는 할 수 없습니다.

질문 : 시스템 관리자의 도움을받지 않고 호스트 A를 통해 라우팅 된 호스트 B의 모든 나가고 들어오는 네트워크 트래픽을 어떻게 가질 수 있습니까? 지금은 호스트 B에 NAT를 사용하거나 호스트 A를 프록시 서버로 만들거나 호스트 A를 라우터로 만들어야하는지 모르겠습니다.

호스트 B에서 route add -host <HostA> gw <HostA's Gateway>명령을 실행하려고 시도했지만 작동하지 않습니다. ping호스트 B에서 www.google.com을 사용할 수 없습니다 . 라우팅 / 네트워킹 주제에 대한 무지를 용서해주십시오.

답변:


16

이를위한 여러 가지 솔루션이 있습니다.

더 쉬운 방법 : NAT

전달을 허용하여 라우터 만들기 : /etc/sysctl.conf를 sysctl net.ipv4.ip_forward=1 넣어 net.ipv4.ip_forward=1영구적으로 만듭니다.

그런 다음 A에서 다음을 입력하여 nat trafic을 입력하십시오. iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE

마지막으로 B : A를 통해 모든 트래픽 라우팅 :

ip route del default  
ip route add default via IP_of_A

기타 솔루션 : Proxify ,

그러나 프록시를 사용하려면 모든 구성 요소를 설정해야합니다.

B에서 다음 명령으로 A에 대한 SSH 연결을 엽니 다.

ssh -D8000 -N -f user@IP_of_A 

그러면 B에서 프록시 양말이 열리고 A를 통해 모든 트래픽이 릴레이됩니다. 예를 들어 웹 브라우저를 사용하는 경우 포트 8000에서 수신 대기하는 127.0.0.1에서 프록시 양말 v5를 설정해야합니다. ip를 설정할 필요가 없습니다. 경로 전달 또는 전달.


발행에 ip route add: 명령을,이 오류가있어Error: either "to" is duplicate, or "gw" is a garbage.
해리

Btw, DrGkill, 다른 방법을 언급 할 수 있다면 대단히 감사하겠습니다. 또한 이러한 개념이 실질적으로 다루어지는 서적 / 자원도 있습니다. Tannenbaum과 같은 이론이 필요하지 않으며 시도하고 배울 수있는 개념과 실제 Linux 명령이 도움이 될 것입니다. 확실하게 날짜가 적힌 [ faqs.org/docs/linux_network/index.html](Linux 네트워크 관리자 안내서)이 아직 최신인지 확인하고 위에서 준 요리법을 다룹니다. 감사합니다. 신의 축복이 있기를.
Harry

올바른 구문은 ip route add default via또는 route add default gw입니다.
quanta

실수가 편집되고 프록시 방식이 추가되었습니다. 즐겨.
DrGkill

1
퀀타 감사합니다! 명령이 승인되었습니다. 그러나 지금 ping www.google.comFrom hostA (<ipaddrOfHostA>) icmp_seq=1 Destination Host Prohibited오류가 발생하고 100 % 패킷 손실이 발생합니다.
Harry

1

방화벽을 비활성화해야한다고 생각합니다.

service iptables stop

호스트 A와 호스트 B 모두에 필요한지 확실하지 않지만 "대상 호스트 금지"메시지를 전달했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.