实现VPN的最简单方法?

实现VPN的最简单方法?

我有一台运行 Lubuntu 的无头机器,我正在使用它作为文件服务器。我已经通过 SSH 进入它,并使用本地网络内的远程桌面进行任何我需要的维护,无论是在桌面上还是通过终端。

据我所知,最后一步是设置 VPN。我称自己为中级计算机用户;我可以轻松地使用说明中的终端,并了解 LAN 和 WAN 的基础知识。不幸的是,我能找到的在 Ubuntu 上设置可靠 VPN(我相信是 OpenVPN)的说明要么不完整,要么不正确,要么太复杂。我只想从启动时就在我的服务器上运行 VPN,并在外出时在笔记本电脑、手机和平板电脑上使用它来访问文件和音乐。

有人可以直接帮助我吗?或者给我指出一个可以帮我的写得很好的、可靠的网络资源?我快抓狂了……

答案1

绝对最小的服务器设置

PPTP VPN以下是在 下运行基本服务器所需的绝对最低限度的说明Ubuntu。然后,客户端将能够VPN进入服务器并路由其互联网流量,以便其通过服务器传输到互联网。

首先,安装所需的软件:

sudo apt-get install pptpd

其次,enable ip_forward在 IPv4 内核中,取消注释以下相关行/etc/sysctl.conf

sudo sed -i -r 's/^\s*#(net\.ipv4\.ip_forward=1.*)/\1/' /etc/sysctl.conf

重新加载配置文件以使更改立即生效。

sudo -i sysctl -p

第三,启用NAT(如果尚未启用),以便私有VPN网络上的用户可以将其数据包路由到互联网:

OUTIF=`/sbin/ip route show to exact 0/0 | sed -r 's/.*dev\s+(\S+).*/\1/'`

sudo -i iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE

从 rc.local 脚本在启动时启用 NAT。

CMD="iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE"
sudo sed -i "\$i$CMD\n" /etc/rc.local

注意:本指南假设您的服务器上未配置防火墙。如果您的服务器上有防火墙(例如 UFW),请查阅相关文档。

第四,对于每个VPN用户,在文件中创建一个帐户/etc/ppp/chap-secrets。将其替换$USER为您要为该 VPN 用户使用的实际用户名。

KEY=`head -c 20 /dev/urandom | sha1sum | nawk '{print $1}'`
echo "$USER pptpd $KEY *" | sudo tee -a /etc/ppp/chap-secrets

最后,您已准备好...

相关内容