在校园网内每台电脑都有一个动态的IP, 理论上可以通过这个IP远程登录网内任何开放的电脑. 但是要怎么获取这个IP? 内网好像没有免费的DDNS服务器.

思路

在IP固定的服务器上创建一个用户ip, 限制其只能使用密钥登录并且无需密码认证, 并将公钥发放至需要连接或者需要获取IP的电脑. 目标电脑定时将IP(ifconfig)信息发送给服务器(scp), 服务器储存目标电脑IP. 使用者的电脑利用脚本自动从服务器获取目标电脑的IP进行连接.

IP发送

ping IP.server.的.IP -c 1 # 检测网络连接
if [ $? -eq 0 ]; then
  ifconfig 网卡名 | sed 's/\t\| /;/g' > mypcip1.txt
  scp -i /公钥/路径 ./mypcip1.txt ip@IP.server.的.IP:~/.ip/
  /bin/rm ./mypcip1.txt
fi

服务器IP数据处理

/usr/local/bin/getip:

echo -n "My PC1 IP is "
echo -n `cat /home/ip/.ip/mypcip1.txt | grep 'inet;' | cut -d';' -f10`
echo " ."
echo ""

远程连接

ssh -X 目标主机用户名@`ssh -i /公钥/路径 getip | cut -d' ' -f5 | grep '[0-9\.]'`

mDNS

最近了解到了mDNS, 或许可以将自己的电脑配置为mDNS服务器而获得与动态IP对应的唯一域名. 有空去试试.



server shell GNU/Linux

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!