커널의 매개변수로 IPv6가 비활성화된 Stretch 기반 데스크톱이 있습니다.
openssh-client
버전 1:7.6p1-2.0nosystemd1 패키지에서 SSH 클라이언트를 설치했습니다 .
tcpdump
DNS 확인 문제를 디버깅하는 동안 포함된 로그에 표시된 대로 SSH 클라이언트가 여전히 IPv6 DNS 관련 쿼리를 수행하고 있음을 확인했습니다 .
제 질문은 이 동작을 어떻게 비활성화할 수 있느냐는 것입니다.
추신. 이것이 좋은 생각인지 나쁜 생각인지 묻는 것이 아니라, 모든 IPv6 서비스가 비활성화된 시스템에서 이 작업을 수행하는 방법만 묻는 것입니다.
tcpdump
명령이 실행될 때 기록됩니다 ssh server1 ; ssh server2
.
# tcpdump -n port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
02:53:37.479073 IP 192.168.1.5.58296 > 192.168.1.1.53: 61011+ A? server1.home. (30)
02:53:37.479100 IP 192.168.1.5.58296 > 192.168.1.1.53: 4719+ AAAA? server1.home. (30)
02:53:37.487504 IP 192.168.1.1.53 > 192.168.1.5.58296: 61011 NXDomain* 0/1/0 (69)
02:53:37.493279 IP 192.168.1.1.53 > 192.168.1.5.58296: 4719 NXDomain* 0/1/0 (69)
02:53:37.493428 IP 192.168.1.5.60276 > 192.168.1.1.53: 31390+ A? server1. (25)
02:53:37.493455 IP 192.168.1.5.60276 > 192.168.1.1.53: 50392+ AAAA? server1. (25)
02:53:37.527879 IP 192.168.1.1.53 > 192.168.1.5.60276: 31390 NXDomain 0/1/0 (100)
02:53:37.535417 IP 192.168.1.1.53 > 192.168.1.5.60276: 50392 NXDomain 0/1/0 (100)
02:53:38.447390 IP 192.168.1.5.36155 > 192.168.1.1.53: 39363+ A? server1.home. (30)
02:53:38.447412 IP 192.168.1.5.36155 > 192.168.1.1.53: 4430+ AAAA? server1.home. (30)
02:53:38.455743 IP 192.168.1.1.53 > 192.168.1.5.36155: 39363 NXDomain* 0/1/0 (69)
02:53:38.461492 IP 192.168.1.1.53 > 192.168.1.5.36155: 4430 NXDomain* 0/1/0 (69)
02:53:38.461606 IP 192.168.1.5.39311 > 192.168.1.1.53: 45400+ A? server1. (25)
02:53:38.461631 IP 192.168.1.5.39311 > 192.168.1.1.53: 872+ AAAA? server1. (25)
02:53:38.493714 IP 192.168.1.1.53 > 192.168.1.5.39311: 45400 NXDomain 0/1/0 (100)
02:53:38.500353 IP 192.168.1.1.53 > 192.168.1.5.39311: 872 NXDomain 0/1/0 (100)
커널/grub에서 IPv6가 비활성화되어 있음을 증명하십시오.
$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.10.5-antix.3-amd64-smp root=UUID=00c17984-859f-4197-8bd8-b346ddd092bd ro iommu=1 intel_iommu=on iommu=pt ip6.disable=1 intremap=no_x2apic_optout radeon.pcie_gen2=0
게다가 sysctl
:
$ cat /etc/sysctl.conf | grep ipv6
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
또한 /etc/gai.conf
IPv4 우선순위를 지정하도록 변경되었습니다.
답변1
클라이언트에서 IPv6 이름 조회를 비활성화하려면 다음을 ssh
수행할 수 있습니다.
ssh
명령줄에서 호출되고 선택적으로-4
IPv4에서만 작동 및 쿼리됩니다.그런 다음 별칭을 다음과 같이 정의합니다.
alias ssh=`ssh -4`
컴퓨터의 시스템 관리자인 경우 ssh
클라이언트 시스템 전체 구성 파일 편집에서 IPv6 기능/DNS 쿼리를 비활성화 /etc/ssh/ssh_config
하고 다음 구성 매개변수를 추가할 수도 있습니다.
AddressFamily inet
에서 man ssh_config
:
주소 가족
연결할 때 사용할 주소 계열을 지정합니다. 유효한 인수는 "any", "inet"(IPv4만 사용) 또는 "inet6"(IPv6만 사용)입니다.