저는 Mac 노트북을 가지고 있고 로컬 네트워크 외부에서 항상 로그인할 수 있도록 지속적인 SSH 터널을 갖고 싶습니다. 처음에 서버에 연결할 수 없을 때(예: 부팅할 때 인터넷에 연결되어 있지 않은 경우) 작동하고 가능할 때 자동으로 터널을 시작하는 방법을 찾고 있습니다.
내 crontab에 줄을 넣으려고 시도했지만 세션이 너무 자주 연결 끊김 으로 시작되고 첫 번째 시도가 실패하면 종료되는 것을 @reboot autossh
발견했습니다 . 현재 해결 방법은 작은 스크립트와 cronjob입니다.autossh
autossh
# crontab
/home/blackl/bin/script &!
# script
#!/bin/sh
while true; do ssh -Ngn -R $some_port:localhost:22 $server; sleep 30; done;
이 작업을 수행하는 더 좋은 방법이 있습니까? 아니면 지금은 이것에 만족해야 합니까?
답변1
죄송합니다. 답변이 너무 늦어서 이미 이 솔루션을 접하셨을 수도 있지만,여기OS X의 launchctl 메커니즘을 사용하여 수행할 수 있는 방법입니다.
내 생각엔 그 사람이 그걸 갖고 있지 않은 것 같아상당히오른쪽; 더 이상 사용되지 않는 "OnDemand/false" 키/값 쌍 대신 "KeepAlive" 키("true" 값 포함)를 사용합니다. 또한 그가 원격 호스트(1666)에서 22와 동일한 포트로 전달하는 이유를 모르겠습니다. 그래도 이해가 되실 것입니다. 저는 웹 서버에 문제없이 작동하고 있습니다.많이무한 루프보다 더 우아합니다.
아, 그리고 그 대신링곤그가 언급한 놀라운 기능을 사용할 수 있습니다.런치컨트롤이를 설정하고 수정하고 모니터링합니다. launchctl에 익숙하지 않다면 프로그램이나 사이트의 입문서를 읽고 무슨 일이 일어나고 있는지 이해하는 것이 좋습니다. 죄송합니다. 입문서에 링크를 걸었지만 담당자가 충분하지 않았습니다. ://