我正在Ubuntu14.04和OpenSSH上运行一个OpenSSH服务器。
我将我的SSH服务器配置为绑定到我的VPN接口上的IP地址。一旦我的机器启动,绑定到那个IP就失败了。
一旦我登录,就可以用netstat看到sshd没有在监听。我能够重新启动sshd,机器将开始正确地监听。我的虚拟专用网上的IP是我配置sshd监听的唯一IP。
在Boot:
sshd[1016]: Set /proc/self/oom_score_adj from 0 to -1000
sshd[1016]: error: Bind to port 22 on 10.8.0.1 failed: Cannot assign requested address.
sshd[1016]: fatal: Cannot bind any address.重新启动SSH:
sshd[3481]: Set /proc/self/oom_score_adj from 0 to -1000
sshd[3481]: Server listening on 10.8.0.1 port 22.我最好的猜测是,sshd在我的虚拟专用网启动和运行之前就已经启动了。是否有一种方法可以确保sshd在启动之后才能正确绑定?
对该做什么或检查有什么建议吗?
发布于 2014-07-18 03:26:28
我找到了解决办法。
在OpenVPN配置文件/etc/openvpn/server.conf中,可以指定要运行的脚本。如果您查看OpenVPN手册页man openvpn,您将看到--up cmd。在/etc/openvpn/server.conf配置文件中,我添加了一行:
up "/etc/openvpn/up.sh"这个文件是我创建的,将在VPN启动时执行。现在,我的看起来是这样的:
#!/bin/sh
logger VPN is UP
service ssh restart现在,每当我的OpenVPN服务器启动时,它也会重新启动OpenSSH服务器。同样,如果希望在服务器关闭时执行脚本,我还可以使用--down cmd并在服务器配置文件中指定一个文件。
您可以在OpenVPN手册页- man openvpn中阅读更多有关这些信息的信息。
发布于 2014-07-17 04:20:16
看起来ssh用的是暴发户,但openvpn不.您也许可以通过这样做来强迫ssh延迟启动,但是它还没有经过测试(我不想破坏我的安装):
update-rc.d ssh defaults 99因为它是未经测试的:注意事项
https://unix.stackexchange.com/questions/144992
复制相似问题