운영 체제 설치 후 구성 스크립트를 작성 중입니다. 설치 후 다시 설치된 시스템에는 시스템이 부팅될 때 연결할 수 있는 기본 고정 IP가 있습니다. ssh
컴퓨터에 연결하는 인터페이스의 기본 고정 IP를 변경하기 위해 컴퓨터에서 스크립트를 실행할 수 있기를 원합니다 . IP를 변경하고 나면/etc/sysconfig/network-scripts/ifcfg-<인터페이스>ifdown <interface> && ifup <interface>
그러나 변경 사항을 적용하기 위해 실행하는 스크립트 는 이제 인터페이스의 IP가 다르기 때문에 SSH 연결이 끊어집니다( ifdown && ifup
원격 시스템의 IP가 동일하게 유지되면 SSH 연결이 끊어지지 않는 것 같습니다). 인터페이스를 다시 시작하고 IP를 변경할 때 SSH 연결이 끊어지지 않는 방법이 있습니까?
답변1
SSH는 TCP/IP를 기반으로 구축되었습니다. 한쪽 끝은 {IP address_client, port_client}, 다른 쪽 끝은 {IP address_server, port_server}를 연결하는 Stateful 프로토콜입니다. 설정된 연결을 유지하려면 네 가지 값이 모두 필요합니다.
(NAT 게이트웨이는 연결에 대한 이러한 값 중 하나 이상을 투명하게 변경하고 이를 반환 트래픽에 대한 원래 값으로 바꾸는 것을 기억합니다.)
IP 주소를 변경할 수 있는지 묻습니다. 이는 네 가지 필수 값 중 하나이므로 이렇게 하면 연결이 활성 상태로 유지되지 않습니다.
요구 사항에 따라 시스템을 다시 시작하기 전에 IP 주소를 재설정하지 않고 대신 임시 추가 IP 주소를 추가하여 제어 채널의 원래 IP 주소를 유지하면서 새 IP 주소에 대한 새 연결을 허용할 수 있습니다.
ip addr add 10.10.10.10/24 dev ens99
좀 더 생각해 보면, 이 작업을 대화형으로 수행했다면 screen
SSH 전송을 격리하기 위해 쉘 세션을 사용했을 것입니다.