두 가지 방법으로 로컬 네트워크의 컴퓨터에 SSH를 연결할 수 있습니다.
로컬 IP를 통해 :
ssh 192.168.1.xxx
포트 포워딩을 사용하는 인터넷을 통해 :
ssh -p xxx mydomain.com
차이점은 무엇입니까?
특히, 한 방법이 다른 방법보다 빠릅니까?
( ssh ... echo hello
1 번 방법으로 약 10ms 빨랐습니다. 100MB의 SCP 전송 속도 차이를 감지 할 수 없었습니다.)
두 가지 방법으로 로컬 네트워크의 컴퓨터에 SSH를 연결할 수 있습니다.
로컬 IP를 통해 : ssh 192.168.1.xxx
포트 포워딩을 사용하는 인터넷을 통해 : ssh -p xxx mydomain.com
차이점은 무엇입니까?
특히, 한 방법이 다른 방법보다 빠릅니까?
( ssh ... echo hello
1 번 방법으로 약 10ms 빨랐습니다. 100MB의 SCP 전송 속도 차이를 감지 할 수 없었습니다.)
답변:
현지에가는 것이 귀하의 질문에 가장 빠르고 효율적이므로 (1).
여기에는 패킷이 네트워크를 통해 라우팅되는 방법이 포함됩니다.
여기서 간단한 설명에서 즉시 확인할 수있는 차이점은 게이트웨이를 사용하는 것과 PC로 직접가는 것입니다. 외부 주소로 이동하면 라우터 (기본 게이트웨이)와 해당 리소스를 사용하여 연결합니다. 이 라우터를 많이 사용하는 경우 트래픽 처리량이 크게 줄어 듭니다.
먼저 로컬 시스템에서 라우팅 테이블을 확인하는 것이 좋습니다.
user@server:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.11.0.1 0.0.0.0 UG 0 0 0 eth0
10.11.0.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
구성에서 로컬 네트워크의 시스템 (예 : 10.11.2.200)을 참조하면 해당 시스템으로 직접 이동한다는 것을 알 수 있습니다. NAT 주소 (예 : 10.11.2.200 NAT www.somedomain.net)가있는 경우 먼저 라우터로 이동 한 다음 NAT를 다시 네트워크로 이동합니다.
내부 IP 주소에 대한 추적 경로를 실행하여 NAT의 IP 주소와 비교하여이를 테스트 할 수 있습니다. (추적 경로에서 이름 확인을 비활성화하는 것이 좋습니다).
user@server:~$ traceroute -n www.xxx.yyy.zzz
traceroute to www.xxx.yyy.zzz (www.xxx.yyy.zzz), 30 hops max, 60 byte packets
1 10.11.0.1 0.598 ms 0.717 ms 0.792 ms
2 10.10.1.3 0.710 ms 0.788 ms 0.896 ms
3 www.xxx.yyy.zzz 0.609 ms 0.496 ms 0.439 ms
네트워크로 다시 돌아 가기 전에 기본 게이트웨이 (라우터)로 이동합니다.
직접 추적 경로와 비교
user@server:~$ traceroute -n 10.11.0.64
traceroute to 10.11.0.64 (10.11.0.64), 30 hops max, 60 byte packets
1 10.11.0.64 0.349 ms 0.343 ms 0.336 ms
작은 파일 전송 속도가 눈에 띄는 이유는 크기가 매우 작아서 라우터에 리소스를 할당하는 데 시간이 걸렸기 때문입니다. 더 큰 파일 전송에서는 연결을 열고 열어두기 때문에 시간이 통계적으로 중요하지 않습니다. 다른 결과를 제공하는 테스트는 작은 크기의 파일을 전송하지만 100MB 파일 크기와 동일하게 X 번 실행합니다. 20,000,000 번 명령을 실행하는 스크립트로 100MB를 얻으십시오.
cmd="ssh ... echo hello"; for ((i=0;i<10000000;i++)); do $cmd;done
( 'echo_hello'가 10 바이트 단위이므로 10,000,000 개의 실행이 발생하지만 출력은 SCP의 간단한 ACK 패킷에서 수신되는 것보다 큽니다). 이 스크립트는 빠른 개념 증명입니다.
이것이 귀하의 질문을 올바르게 해결하기를 바랍니다. 소스 및 / 또는 대상 시스템에 서로 다른 네트워크에 여러 인터페이스가있는 경우 더 복잡해지고 싶습니다.