于 2014 年 2 月 13 日星期四 17:10:07 完成

于 2014 年 2 月 13 日星期四 17:10:07 完成

我正在使用 Windows 7 连接到运行 CentOS 6.4 的 VPS 服务器

首先,我读了每一篇帖子,但就是找不到问题的解决方案

我使用 openvpn 配置了我的 VPN 服务器,经过 4 个月的断断续续的尝试,它终于正常工作了……

所以我必须连接到我的服务器,这是一个突破,但是,我无法访问互联网 :( 我不确定你们需要看到什么才能提供帮助,但我会发布我所知道的可能相关的内容

据我了解,我已经正确配置了 openvpn,因为我可以成功连接到服务器

我不知道我使用的是什么防火墙,我猜它叫 iptables

iptables

# Generated by iptables-save v1.4.7 on Thu Feb 13 17:10:07 2014
*nat
:PREROUTING ACCEPT [721:50130]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT
# Completed on Thu Feb 13 17:10:07 2014
# Generated by iptables-save v1.4.7 on Thu Feb 13 17:10:07 2014
*filter
:INPUT DROP [886:120871]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [1209:156538]
-A INPUT -p udp --dport 1194 -j ACCEPT
-A INPUT -i tun+ -j ACCEPT
-A FORWARD -i tun+ -j ACCEPT
-A OUTPUT -m state --state NEW -o eth0 -j ACCEPT
-A FORWARD -m state --state NEW -o eth0 -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -m comment --comment "SSH" -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5252 -m comment --comment "SecureSSH" -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED$
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 0 -m state --state RELATED,ESTABLISHED -j$
COMMIT
# Completed on Thu Feb 13 17:10:07 2014

ifconfig

eth0      Link encap:Ethernet  HWaddr 00:1D:D8:B7:22:17
          inet addr:41.185.26.95  Bcast:41.185.26.255  Mask:255.255.255.0
          inet6 addr: fe80::21d:d8ff:feb7:2217/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6598 errors:0 dropped:0 overruns:0 frame:0
          TX packets:464 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:545682 (532.8 KiB)  TX bytes:51265 (50.0 KiB)

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:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:141 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:7352 (7.1 KiB)  TX bytes:0 (0.0 b)

如果有人需要其他任何东西,只需问,我真的很挣扎,我不知道还能做什么......

如果有人有建议,我仍然是 Linux 新手,所以请解释我需要做什么,并在需要时提供代码,我将不胜感激

提前致谢

我编辑了我的 iptables :)

# Generated by iptables-save v1.4.7 on Thu Feb 13 17:10:07 2014
*nat
:PREROUTING ACCEPT [721:50130]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT
# Completed on Thu Feb 13 17:10:07 2014
# Generated by iptables-save v1.4.7 on Thu Feb 13 17:10:07 2014
*filter
:INPUT DROP [886:120871]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [1209:156538]
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -i tun0 -j ACCEPT
-A FORWARD -i tun0 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o tun0 -j ACCEPT
-A OUTPUT -m state --state NEW -o eth0 -j ACCEPT
-A FORWARD -m state --state NEW -o eth0 -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -m comment --comment "SSH" -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5252 -m comment --comment "SecureSSH" -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j A$
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 0 -m state --state RELATED,ESTABLISHED -j ACCE$
COMMIT
# Completed on Thu Feb 13 17:10:07 2014

在职的!!!

答案1

由于您没有提到,所以值得一试...您启用了 ipv4 转发吗?

sysctl net.ipv4.ip_forward=1

如果有效,编辑 /etc/sysctl.conf 并添加或编辑

# Controls IP packet forwarding
net.ipv4.ip_forward =1    

还要检查你是否从你的服务器推送了合适的路线,

push "redirect-gateway"

或者

push "redirect-gateway def1"

答案2

您还可以告诉网络管理器插件不要通过 VPN 路由流量。下面有一个选项IPv4 Settings- 单击Routes按钮,然后选中旁边的框 Use this connection only for resources on its network,看看是否有效。

苏兰加

答案3

大家好,

我写这个作为“教程”,是为了那些需要 IPTABLES 帮助的人

我一直在尝试不同的规则,经过多次尝试和 iptables 刷新后,我终于弄清楚了为什么从 tun0 到 eth0 接口没有互联网访问/吞吐量

/etc/sysconfig/iptables

# Generated by iptables-save v1.4.7 on Thu Feb 13 17:10:07 2014

//我说的是纠正,但 NAT 只是在通过防火墙之前路由所有数据包,所以基本上,由于所有数据包都发往服务器 - 因此它需要通过防火墙,但是你可以告诉服务器将这些数据包“放置”到不同的接口上(例如 eth0、tun0、wlan0)

*nat

:PREROUTING ACCEPT [721:50130]

//接受来自任何外部源的所有数据包并且不路由到任何特定接口(与过滤器输入相同)

:POSTROUTING ACCEPT [0:0]

//接受来自任何 INSIDE IP RANGE(10.8.0.0/24)源的所有数据包并将其作为 OUTPUT 路由到接口 eth0(与过滤器 FORWARD 相同)

:OUTPUT ACCEPT [0:0]

//接受从任何内部源到外部的所有数据包,并且不路由到任何特定接口(与过滤器输出相同)

-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

//附加一条规则,将防火墙之后的所有路由后流量、来自 IP 地址在 10.8.0.0/24 范围内的设备(包括由于未添加 --sport 而产生的所有数据包)发送到接口 eth0(与服务器的实时互联网连接的接口)

COMMIT

# Completed on Thu Feb 13 17:10:07 2014

# Generated by iptables-save v1.4.7 on Thu Feb 13 17:10:07 2014

*filter

//过滤器所做的就是将数据包分类(基于端口号),并允许具有适当端口号的某些数据包通过,同时也允许来自某些 IP 地址的某些数据包通过

//注意:过滤器使用标准的接受/丢弃策略(最常用的选项),数据包将根据其来源/来源被丢弃,但正如您有 NAT 规则一样,您也会有过滤器规则

:INPUT DROP [886:120871]

//进入服务器的所有数据包将被丢弃/忽略

:FORWARD DROP [0:0]

//所有需要在服务器接口之间转发的数据包将被丢弃/忽略

:OUTPUT ACCEPT [1209:156538]

//服务器知道它必须丢弃所有 INPUT/传入和 FORWARD/传输数据包,但所有这些规则都是所述策略的例外,因此这些例外将在下面列出

//所有从服务器发出的数据包都将被接受/允许

-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

//允许符合以下条件的所有数据包:从 TCP 协议上的端口 443(HTTPS 端口)传入

-A INPUT -i tun0 -j ACCEPT

//允许符合以下条件的所有数据包:从接口 tun0(您的 VPN 接口)传入


-A FORWARD -i tun0 -o eth0 -j ACCEPT

//允许所有符合以下标准的数据包:将所有数据包从接口 tun0 传输到接口 eth0

-A FORWARD -i eth0 -o tun0 -j ACCEPT

//允许所有符合以下标准的数据包:将所有数据包从接口 eth0 传输到接口 tun0

//这 2 条规则非常非常重要,它们允许你的客户端连接到你的 openvpn 服务器并访问互联网,如果没有它们,你可以连接但无法使用 openvpn 访问互联网

-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

//允许符合以下条件的所有数据包:所有与接口之间现有连接和/或已建立的连接相关的数据包,接受它们

-A INPUT -p tcp -m tcp --dport 22 -m comment --comment "SSH" -j ACCEPT

//允许所有符合以下条件的数据包:tcp 端口 22 上的传入数据包并添加注释“SSH”

-A INPUT -p tcp -m tcp --dport 5252 -m comment --comment "SecureSSH" -j ACCEPT

//允许符合以下条件的所有数据包:tcp 端口 5252 上的传入数据包并添加注释“SecureSSH”

-A INPUT -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

//允许符合以下条件的所有数据包:允许所有传入的新的、相关的或已建立的 echo/ping 请求

-A OUTPUT -p icmp -m icmp --icmp-type 0 -m state --state RELATED,ESTABLISHED -j ACCEPT

//允许所有符合以下标准的数据包:允许所有新的、相关的或已建立的 echo/ping 回复

//查看回复/请求类型/代码列表的链接 - http://www.faqs.org/docs/iptables/icmptypes.html

-A INPUT -i lo -j ACCEPT

//允许所有符合以下条件的数据包:来自本地主机

COMMIT

于 2014 年 2 月 13 日星期四 17:10:07 完成

我希望这对某些人有帮助,并祝大家未来好运!

相关内容