저는 현재 Ubuntu Mate 32비트를 실행하는 Raspberry Pi 프로젝트를 진행 중입니다. RPi는 바다에 있으며 4G 라우터를 통해 인터넷에 연결됩니다. VPN 네트워크를 통해 HMI를 실행하는 육지의 다른 컴퓨터로 데이터를 보냅니다. VNC 연결은 VPN 연결을 통해서도 작동합니다.
시작 시 VPN 서버에 자동으로 연결됩니다.
내 문제는 시스템 전원이 켜지고 RPi와 라우터가 동시에 부팅될 때 RPi가 먼저 부팅되고 네트워크 인터페이스를 통해 연결을 시도하지만 라우터가 아직 부팅되지 않았기 때문에 실패한다는 것입니다. .
RPi는 라우터가 최종적으로 가동되어 실행될 때까지 계속 연결을 시도합니다. 그러나 이 프로세스는 VPN 연결에 영향을 미치며, 두 컴퓨터가 모두 VPN 네트워크에 연결되어 있어도 VPN 네트워크의 RPi로부터 데이터를 받을 수 없습니다.
그런 다음 RPi를 다시 시작하고 라우터를 연결하여 실행하면 제대로 작동하고 데이터를 받을 수 있습니다.
해결책으로, 라우터가 제대로 부팅될 수 있도록 연결하려는 네트워크 인터페이스에 30초 지연을 추가하고 싶습니다.
어떻게 해야 하나요? 아니면 이 문제를 해결하는 방법에 대한 더 나은 제안이 있는 사람이 있습니까?
답변1
시스템 서비스에서 연결이 성공한 후 VPN을 시작하도록 구성할 수 있습니다. 해결책은 After
유닛 파일의 지시어를 변경하는 것입니다. 예를 들어 sshd
서비스는 이 파일에 있으며 /etc/systemd/system/multi-user.target.wants/sshd.service
옵션 After
은 네트워크 다음에 서비스를 강제로 시작합니다.
[Unit]
Description=OpenSSH Daemon
Wants=sshdgenkeys.service
After=network.target
[Service]
ExecStart=/usr/bin/sshd -D
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always
[Install]
WantedBy=multi-user.target
After
따라서 VPN 서비스를 변경해야 합니다 .vpn.service