我正在尝试从我的 Android 手机到我家庭网络上的 Ubuntu 服务器创建 L2TP/IPSec PSK VPN。
我收到两个错误。第一个是当我运行 ipsec verify 时检查 IP 转发失败。
"Two or more interfaces found, checking IP forwarding [FAILED]"
当我尝试从 Android 手机连接到 ipsec 时,发生了第二个错误。在 auth.log 中,我收到此错误;
Aug 7 19:47:57 ubuntu pluto[5019]: packet from 70.192.193.159:13305: initial Main Mode message received on 192.168.10.104:500 but no connection has been authorized with policy=PSK
Regarding IP forwarding, yes I've added "net.ipv4.ip_forward=1" into sysctl.conf and ran "sysctl -p /etc/sysctl.conf"
根据我的研究,普遍的想法是这些问题是由 ipsec.conf 和/或 ipsec.secrets 中的错误配置引起的。
我认为问题与在 natted 网络上的细微差别有关。首先,我有一个处于桥接模式的 Comcast 电缆调制解调器。接下来,我有一个 Linksys 有线/无线路由器,它使用 DHCP 检索我的公共 IP 地址 70.192.193.70。我的 Ubuntu 服务器从我的 Linksys 路由器 192.168.10.104 检索其保留的 DHCP natted IP 地址等。我的 Linksys 路由器是默认网关 192.168.10.1。
我希望有人读到这篇文章后会说,傻傻的克里斯,你难道看不出来你必须像这样配置这些文件吗?哈哈!我所做的阅读都使用了示例 IP 地址,如 abcd 和 efgh,我为你提供了实际 IP 地址,以使一切不那么令人困惑。下面是我目前的文件的样子。
/etc/ipsec.secrets
192.168.10.104 %any: PSK "myPSKpassword"
/etc/ipsec.conf
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!10.152.2.0/24
# virtual_private=%v4:192.168.10.0/24
#contains the networks that are allowed as subnet= for the remote client. In other words, the address ranges that may live behind a NAT router through which a client connects.
oe=off
protostack=netkey
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
# Apple iOS doesn't send delete notify so we need dead peer detection
# to detect vanishing clients
dpddelay=30
dpdtimeout=120
dpdaction=clear
# Set ikelifetime and keylife to same defaults windows has
ikelifetime=8h
keylife=1h
type=transport
# Replace IP address with your local IP (private, behind NAT IP is okay as well)
#left=x.x.x.x
left=192.168.10.104
# For updated Windows 2000/XP clients,
# to support old clients as well, use leftprotoport=17/%any
leftprotoport=17/%any
right=%any
rightprotoport=17/%any
#force all to be nat'ed. because of iOS
forceencaps=yes
我很困惑。非常欢迎任何建议!
答案1
以下是我修复它的方法:
1.
echo 0 > /proc/sys/net/ipv4/ip_forward
2.
ipsec verify
3.
echo 1 > /proc/sys/net/ipv4/ip_forward
那么它就可以工作了。
希望我能帮上忙:P
答案2
我注意到的一件事是 中的一个错误/etc/ipsec.secrets
。我的配置如下:
<outside world>
|
V
public ip
|
V
router (private IP 10.0.100.1)
|
V
10.0.1.1 (ubuntu IP)
我的/etc/ipsec.secrets
样子是这样的:
10.0.1.1 %any: PSK "whateverpassword"
我的/etc/ipsec.conf
样子是这样的:
<code>
version 2.0
config setup
dumpdir=/var/run/pluto/
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:!10.0.151.0/24
oe=off
protostack=netkey
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
dpddelay=30
dpdtimeout=120
dpdaction=clear
ikelifetime=8h
keylife=1h
type=transport
left=10.0.1.1
leftnexthop=10.0.1.1
leftprotoport=17/%any
right=%any
rightprotoport=17/%any
forceencaps=yes
</code>
如您所见,两个文件中都使用了 VPN 服务器的 IP 地址,而不是路由器的 IP 地址。
10.0.151.0/24
是我用于 VPN 的子网。我的 Ubuntu 机器有该10.0.151.0
地址,第一个连接的客户端会获得10.0.151.1
分配的地址,依此类推。
希望这能有所帮助。另外,请用代码块清理您的帖子,因为您的配置文件不可读。