我有一个虚拟专用服务器,我想在我的服务器连接到 VPN 服务时运行网络服务器
当与我的提供商的 VPN 连接未启动时,我可以使用此服务器、ssh、scp、http 等做任何我想做的事情。
一旦 openvpn 运行并连接到提供商的 VPN 服务,服务器就无法通过任何方式访问,当然这是有充分理由的
图片是这样的:
           My VPS                             ------------
         +----------------+                  /            \
         |                |                 /   Internet  /       101.11.12.13
         |        50.1.2.3|-----------------\   cloud    /----<--- me@myhome
         |                |                  /           \
         |     10.80.70.60|                 /             \
         +----------------+                 \              \
                        :                    \_____________/
                        :                           :
                        :                           :
                        :                           :
                        :                           :
                  +------------------+              :
                  |     10.80.70.61  |              :
                  |               \  |              :
                  |                \ |              :
                  | 175.41.42.43:1197|..............:
                  |   175.41.42.43:yy|   
                  |       .....      |
                  |   175.41.42.43:xx|
                  +------------------+
Legend                  
------ Line No VPN …Run Code Online (Sandbox Code Playgroud) 当我通过 Internet 建立到我们公司 OpenVPN 服务器的 OpenVPN 客户端连接时,它会推送几个静态路由。不幸的是,这些路由在我的本地网络环境中破坏了一些连接,因为它们与我自己的路由相冲突。我如何拒绝这些路线?
好的,所以我一直在网上搜索此问题的解决方案,但似乎没有任何答案对我有用。希望有人可以帮助我。我只是想配置 OpenVPN 客户端。
我正在跑步CrunchBang Linux 3.2.0-4-amd64 Debian 3.2.60-1+deb7u1 x86_64 GNU/Linux,我刚刚切换到使用systemd. 转换进行得足够顺利,但现在我无法使用 systemd 启动我的 OpenVPN 客户端,我尝试按照这些配置教程进行操作,但没有任何效果。
我可以从命令行使用openvpn /etc/openvpn/vpn.conf. 所以我知道配置文件很好,它与 sysvinit 一起工作得很好,所以我并不感到惊讶。然后我尝试只做一个状态,systemctl status openvpn@vpn.service结果是:
$ sudo systemctl status openvpn@vpn.service
  openvpn@vpn.service
Loaded: error (Reason: No such file or directory)
Active: inactive (dead)
Run Code Online (Sandbox Code Playgroud)
我意识到我需要为服务做一些设置。我想被提示输入密码,所以我按照本指南创建了一个openvpn@.servicein /etc/systemd/system/. 但是重新启动 OpenVPN 服务仍然不会提示输入密码。  
$ sudo service openvpn restart
[ ok ] Restarting openvpn (via systemctl): openvpn.service.
Run Code Online (Sandbox Code Playgroud)
Fedora 教程完成了创建符号链接的步骤,但不会在演练中创建任何 .service 文件。
我错过了什么片段?我需要创建一个 openvpn@vpn.service 吗?如果是这样,我应该把它放在哪里?我觉得这不应该这么困难,但我似乎找不到任何适合我的解决方案。我很乐意提供更多需要的信息。
-rw-r--r-- …Run Code Online (Sandbox Code Playgroud) 我遇到了一些难题,但找到解决方案的运气并不好。现在我(遗憾地)通过 Verizon 3G 连接到网络。他们过滤所有传入的流量,所以我不可能打开端口来接受连接。
我目前在 linode.com 上有一台 Linux 虚拟机,我想到要安装pptpd并尝试进行一些iptables端口转发。我已经pptpd安装,我的家用机器连接愉快。也就是说,这里有一些一般信息:
服务器 (Debian) WAN IP: xxxx on eth0 - pptpd IP: yyy1 on ppp0 - 客户端 VPN IP: yyy100
为了验证我没有发疯,我尝试了一些从服务器到客户端开放端口的连接,并且客户端确实通过 VPN IP 接受了这些连接。
我想要完成的是:
Internet -> WAN IP:Port -> 转发到客户端 VPN IP:Port
例如,如果我在我的客户端上打开了 6000 端口,那么一个人可以远程登录到 xxxx:6000,服务器会捕获它并将其转发到 192.168.3.100:6000。
我已经尝试了至少 20 种不同的 Google 搜索iptables配置,但都没有奏效。有没有人有任何想法,或者甚至是我可能不知道的完全不同的方法?这里的目标是通过可怕的防火墙连接侦听,最好是 TCP 和 UDP 流量。
我希望我的 OpenVPN 服务器将路由推送到具有不同默认网关的客户端。
具体来说,我的 OpenVPN 服务器的内部 IP 地址为10.0.0.1,我希望它推送10.10.10.1/24使用网关的路由10.0.0.2。
是否可以通过在服务器配置文件中指定推送路由来做到这一点?
我用静态密钥设置了一个openvpn服务器(由于国家网关的DPI,证书模式不可用),但连接后我无法成功自动更改DNS。我在互联网和 SE 上搜索,每个人都建议使用dhcp-option.
我试图将此行添加到 client.ovpn
dhcp-option DNS 8.8.8.8
Run Code Online (Sandbox Code Playgroud)
没有效果。我试图在服务器配置中添加这一行
push "dhcp-option DNS 8.8.8.8"
Run Code Online (Sandbox Code Playgroud)
两者都没有任何影响。
事实上,根据手册,
--dhcp-option 类型 [参数]
设置扩展的 TAP-Win32 TCP/IP 属性,必须与 --ip-win32 dynamic 或 --ip-win32 自适应一起使用。
但是我的客户端是 Mac 机器,服务器 Linux。有什么解决办法吗?
当试图 service openvpn start
Oct 12 14:02:01 ccushing1 openvpn[9091]: Options error: In [CMD-LINE]:1: Error opening configuration file: devnet-client-vm.conf
Run Code Online (Sandbox Code Playgroud)
跑步openvpn devnet-client-vm.conf效果很好。为什么openvpn无法启动?我该如何解决?
我正在尝试建立一个 VPN(使用 OpenVPN),以便所有流量,只有流量,去往/来自特定进程,通过 VPN;其他进程应该继续直接使用物理设备。我的理解是,在 Linux 中执行此操作的方法是使用网络命名空间。
如果我正常使用 OpenVPN(即通过 VPN 从客户端汇集所有流量),它工作正常。具体来说,我像这样启动 OpenVPN:
# openvpn --config destination.ovpn --auth-user-pass credentials.txt
Run Code Online (Sandbox Code Playgroud)
(destination.ovpn 的编辑版本在这个问题的末尾。)
我被困在下一步,编写将隧道设备限制为命名空间的脚本。我试过了:
将隧道设备直接放在命名空间中
# ip netns add tns0
# ip link set dev tun0 netns tns0
# ip netns exec tns0 ( ... commands to bring up tun0 as usual ... )
Run Code Online (Sandbox Code Playgroud)
这些命令成功执行,但在命名空间内产生的流量(例如 with ip netns exec tns0 traceroute -n 8.8.8.8)落入了一个黑洞。
假设“您[仍然]只能将虚拟以太网(veth)接口分配给网络命名空间”(如果属实,将获得今年最荒谬的不必要的API限制奖),创建一个veth对和一个网桥,以及将 veth 对的一端放在命名空间中。这甚至不会让地面上的流量下降:它不会让我将隧道放入桥中![编辑:这似乎是因为只能将分接头设备放入网桥。与无法将任意设备放入网络命名空间不同,这实际上是有道理的,网桥是以太网层的概念;不幸的是,我的 VPN 提供商不支持 Tap 模式下的 OpenVPN,所以我需要一个解决方法。]
# ip addr add …Run Code Online (Sandbox Code Playgroud)可以.ovpn通过 GUI 工具将文件导入NetworkManager nm-connection-editor(右键单击nm-applet并单击Edit connections):Add-> Import a saved VPN configuration...。
我的目标是做同样的事情,但通过命令行使用nm-cli. 有可能吗?
我按照以下指南how-to-set-up-an-openvpn-server-on-ubuntu在 Ubuntu 服务器 16.04 上安装和 oepnvpn
当我启动 openVPN 服务器时:service openvpn start看起来它已经启动了,但是即使我激活了日志选项,我也没有写入日志文件。
status /var/log/openvpn-status.log
log  /var/log/openvpn.log    
Run Code Online (Sandbox Code Playgroud)
任何提示我可以尝试什么?
启动服务时的输出
root@Diabolo:/etc/openvpn# service openvpn stop
root@Diabolo:/etc/openvpn# service openvpn start
root@Diabolo:/etc/openvpn# service openvpn status
openvpn.service - OpenVPN service
Loaded: loaded (/lib/systemd/system/openvpn.service; enabled; vendor preset: enabled)
Active: active (exited) since Sat 2016-06-25 19:04:12 CEST; 3s ago
Process: 3956 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 3956 (code=exited, status=0/SUCCESS)
Jun 25 19:04:12 Diabolo systemd[1]: Starting OpenVPN service...
Jun 25 19:04:12 Diabolo systemd[1]: …Run Code Online (Sandbox Code Playgroud)