PI作为本地计算机的VPN路由器


18

我想让我的几台机器通过VPN连接访问互联网。我的想法是,PI可以简单地建立连接,然后通过它路由来自其他计算机的请求。

我在考虑将设备的默认路由器设置为PI的IP。

尽管对多种事物的命令行配置有所了解,但您能否指出我所需的软件包/服务的说明?

设置摘要:

  • PI通过默认路由器直接连接到Internet
  • PI创建一个VPN连接(OpenVPN),并在其本地接口上侦听流量
  • PI在发生故障时重新建立连接
  • 其他网络设备的默认网关设置为PI的IP,并且所有流量都通过VPN传输(前提是已启用)(如果VPN断开,则没有Internet连接)。

我不需要NAT或DHCP服务(DNS也可以通过VPN)。


重点是什么?如果您在本地网络上使用Pi来创建出站连接,为什么不使用其他计算机直接创建类似的出站连接,从而节省了Pi的成本以及软件安装和设置的麻烦呢?传统的VPN设置是您本地网络上的计算机,它侦听入站连接并检查密码,然后让远程计算机直接使用您的本地网络,反之亦然。
lenik

1
@lenik的要点是,我有许多使用相同VPN连接的机器。另外,配置一台计算机比保持更改多台计算机的配置以确保重拨等要简单得多。您是正确的-这不是标准设置,如果是的话,我可能会查找教程,而不是询问
13年

1
更不用说使用其他设备进行路由使确保所有流量通过VPN的工作变得简单得多
彼得

3
某些设备也无法连接到VPN。这些设备包括许多游戏机以及其他不运行可轻松配置为连接到VPN的标准操作系统的设备。
Kibbee

@lenik此设置在企业级网络设备中很常见。它是内置路由器,价格从300美元左右起。该OP可以寻找各地价格的第十一个解决方案...我也是如此
菲利普·库寿龄

Answers:


15

我的设置与您相同:

Cable modem -> Router (192.168.1.1) +-> Raspberry Pi (192.168.1.11)
                                    |-> iPad (DHCP)
                                    |-> PC (DHCP)
                                    `-> AppleTV (DHCP)

首先,我/etc/network/interfaces将RPi上的网络设置()更改为静态地址

iface eth0 inet static
address 192.168.1.11
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

之后,您需要在RPi上设置OpenVPN:

sudo apt-get install openvpn

接下来,您必须设置vpn的配置文件/etc/openvpn/server.conf。我使用了我的VPN服务(Witopia)提供的示例,最后更改dev tundev tun0并添加redirect-gateway了该示例。

下一步,修改iptables以允许NAT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

要使其永久保存,请像这样保存

sudo bash
iptables-save > /etc/iptables.up.rules
nano /etc/network/if-pre-up.d/iptables

将此添加到新文件:

#!/bin/bash
/sbin/iptables-restore < /etc/iptables.up.rules

保存并使其可执行chmod +x /etc/network/if-pre-up.d/iptables。现在,您需要通过编辑/etc/sysctl.conf和取消注释该行来启用IP转发net.ipv4.ip_forward = 1

重新启动,RPi应该已连接到您的VPN,并准备接收传入的流量。我在路由器(运行OpenWrt)上的dhcp服务中添加了一个新选项,以指定发送到客户端的网关。我将行添加list 'dhcp_option' '3,192.168.1.11'到文件中,/etc/config/dhcp然后重新启动了路由器。我的iPad,PC和AppleTV现在通过RPi连接以访问外部URL。

资料来源:


1
我刚刚在上周末完成了类似的设置。我还必须将“ net.ipv4.tcp_ecn = 0”添加到/etc/sysctl.conf文件中。不知道它做什么,但是没有它网关将无法正常工作。
Kibbee

这对我有用,但有一个修改:NAT规则应为iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Regan Walsh


0

尝试

https://help.ubuntu.com/community/OpenVPN

Raspbian应该与Ubuntu足够接近,以使设置相同,并且我刚刚检查了Raspbian存储库中是否提供OpenVPN软件包。

但是,请注意,大多数VPN指导将告诉您如何创建服务器以向Internet上的VPN客户端开放您的LAN,而不是相反,因此,您可能需要尝试一些路由设置。


谢谢,那一点我理解得更好了-我不确定如何使PI侦听连接并通过VPN转发它们?
13年

1
@petr您只需要运行sysctl -w net.ipv4.ip_forward = 1,并让其他计算机将RPI用作其默认网关,并且RPI会愉快地路由。

0

不知道这是否有用,但是当我离开美国到中国时,我正在vpn提供商的Raspberry Pi上使用VPN ,他们安装了dd-wrt脚本,并且从第一次开始就可以使用。因此,如果您正在寻找具有dd-wrt脚本的提供程序,可能会为您省去很多麻烦。如果有人对脚本感到好奇,可以在此处发布。



0

这是我的设置,与您的需求非常相似;唯一需要的就是安装OpenVPN客户端并在Raspbian上进行一些配置。 在此处输入图片说明

我在博客中描述了它;使用Raspberry PI设置VPN网关


你好,欢迎光临!现在,我不认为这个问题“您能指出我所需的软件包/服务的指示吗?您能指出我所需的软件包/服务的指示吗?” 在答案中解决。您能否在不要求人们跟随链接的情况下进行详细说明(实际上只是数字)?
加尼玛

@Ghanima,感谢您的评论。我已更改我的答复。
afelaho
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.