我正在尝试在 Ubuntu 和 openVPN 下配置 VPN。我遵循了以下指南:https://help.ubuntu.com/10.04/serverguide/C/openvpn.html但我无法从任何客户端连接,总是出现超时错误。
我认为问题出在桥接配置上。根据 Ubuntu wiki,我应该这样配置桥接接口:
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
address 192.168.0.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
但我不确定必须分配给地址、网络、网络掩码、广播和网关的值。
ifconfig 的输出如下(IP不是真实的):
eth0 Link encap:Ethernet HWaddr 00:19:99:14:01:d1
inet addr:87.106.179.10 Bcast:87.106.179.10 Mask:255.255.255.255
inet6 addr: fe80::219:99ff:fe14:1d1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1147011 errors:1 dropped:0 overruns:0 frame:1
TX packets:2052888 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:78775595 (78.7 MB) TX bytes:2585422360 (2.5 GB)
Interrupt:20 Base address:0xa000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:5040278 errors:0 dropped:0 overruns:0 frame:0
TX packets:5040278 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1991710982 (1.9 GB) TX bytes:1991710982 (1.9 GB)
我的服务器是专用服务器,我的本地 IP、公网 IP 和广播都是一样的。不知道这在专用服务器中是否常见。
我当前的 /etc/network/interfaces 如下:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto br0
iface br0 inet static
address 87.106.179.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 87.106.179.10
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
也许问题出在其他地方,但我不确定这个文件是否正确。
我将非常感激任何形式的帮助,先谢谢您。
答案1
要设置桥接,您可以使用以下代码:
#!/bin/bash
#################################
#Set up Ethernet bridge on Linux#
Requires: bridge-utils
#################################
#Define Bridge Interface
br="br0"
# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"
# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth0"
eth_ip="192.168.8.4"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.8.255"
for t in $tap; do
openvpn --mktun --dev $t
done
brctl addbr $br
brctl addif $br $eth
for t in $tap; do
brctl addif $br $t
done
for t in $tap; do
ifconfig $t 0.0.0.0 promisc up
done
ifconfig $eth 0.0.0.0 promisc up
ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast
您应该使用您的本地网络的地址。
发布客户端和服务器的完整配置,以便我可以进一步帮助您,另外,连接日志说了什么?协商隧道时出现问题吗?公共 IP 是否被转发到 OpenVPN 服务器?
问候,
雨果