1
mahone3297 2014-12-16 09:41:33 +08:00
https://github.com/mahone3297/hades/blob/master/doc/vpn.md
关键点,我都在上边列了。lz再看下。。。 我之前刚配好,试过,可以。 ps:你说额,能连上,但是不能打开网页,可能是ms-dns,也可能是nat。但我看你都配了,我也不清楚,你再仔细看看吧。。。 |
2
chinawrj 2014-12-16 09:49:43 +08:00
你备份一下,我上去给你瞧瞧。。。如果你信任我的话,将近6年Tomato/openWrt折腾经验
|
3
ob OP @mahone3297
跟你的链接有个不一样的地方是: vi /etc/ppp/pptpd-options ms-dns 8.8.8.8 ms-dns 8.8.4.4 我ppp目录下面的文件是这个:options.pptpd 不知道是你的写错了,还是我的错了? @chinawrj 信任到是信任,给个私密的地址,我不好直接公开发表在这里 |
4
ryd994 2014-12-16 09:59:06 +08:00 via Android
你ifconfig看看你有没有eth0
看看出口网卡是哪个 |
5
ob OP @ryd994
有,ip我用*代替了下: =========================== eth0 Link encap:Ethernet HWaddr 00:16:3E:00:44:48 inet addr:10.162.*.* Bcast:10.162.*.* Mask:255.255.240.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:20800395 errors:0 dropped:0 overruns:0 frame:0 TX packets:397111 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:950661604 (906.6 MiB) TX bytes:32056022 (30.5 MiB) Interrupt:165 eth1 Link encap:Ethernet HWaddr 00:16:3E:00:44:49 inet addr:115.29.*.* Bcast:115.29.*.* Mask:255.255.252.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:402275039 errors:0 dropped:0 overruns:0 frame:0 TX packets:1970978 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:18582675650 (17.3 GiB) TX bytes:2543504644 (2.3 GiB) Interrupt:164 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1846650 errors:0 dropped:0 overruns:0 frame:0 TX packets:1846650 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:840342079 (801.4 MiB) TX bytes:840342079 (801.4 MiB) |
6
drivel 2014-12-16 10:26:52 +08:00
觉得是 MTU 问题,试试看
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu |
7
ob OP @drivel 加过,还是一样。。
====================== -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu COMMIT # Completed on Tue Dec 16 10:28:53 2014 # Generated by iptables-save v1.4.7 on Tue Dec 16 10:28:53 2014 *nat :PREROUTING ACCEPT [176:13030] :POSTROUTING ACCEPT [41:3203] :OUTPUT ACCEPT [41:3203] -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080 -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE COMMIT # Completed on Tue Dec 16 10:28:53 2014 |
8
ryd994 2014-12-16 10:53:06 +08:00
你贴一下配置文件吧
|
9
mahone3297 2014-12-16 10:54:13 +08:00
|
10
bellchu 2014-12-16 10:59:15 +08:00
把你iptables规则都贴出来看看
|
11
ob OP @mahone3297 我的是centos 6.3 64位
@ryd994 我贴一键关键位置,就不贴整个了 ======================= /etc/ppp/options.pptpd=============== # specifies the primary DNS address; the second instance (if given) # specifies the secondary DNS address. #ms-dns 10.0.0.1 #ms-dns 10.0.0.2 ms-dns 8.8.8.8 ms-dns 8.8.4.4 ==================== # cat /etc/ppp/chap-secrets============= # Secrets for authentication using CHAP # client server secret IP addresses ob pptpd 123456 * guest pptpd 123456 * ====================== # cat /etc/pptpd.conf============== # (Recommended) #localip 192.168.0.1 #remoteip 192.168.0.234-238,192.168.0.245 localip 192.168.0.1 remoteip 192.168.0.234-238 # or #localip 192.168.0.234-238,192.168.0.245 #remoteip 192.168.1.234-238,192.168.1.245 上面localip和remoteip改过好几种形式,现在是这种 ============================ #cat /etc/sysctl.conf=========== # Controls IP packet forwarding net.ipv4.ip_forward = 1 # Controls source route verification net.ipv4.conf.all.rp_filter=0 net.ipv4.conf.default.rp_filter=0 # Do not accept source routing net.ipv4.conf.default.accept_source_route = 0 # Controls the System Request debugging functionality of the kernel kernel.sysrq = 0 # Controls whether core dumps will append the PID to the core filename. # Useful for debugging multi-threaded applications. kernel.core_uses_pid = 1 # Controls the use of TCP syncookies net.ipv4.tcp_syncookies = 1 =================================== # cat /etc/sysconfig/iptables==============下面是iptables完整的了,可能问题出在这里:帮忙看下: # Generated by iptables-save v1.4.7 on Tue Dec 16 10:28:53 2014 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [5:1174] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 47 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT -A INPUT -p tcp -m tcp --dport 30000:30100 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu COMMIT # Completed on Tue Dec 16 10:28:53 2014 # Generated by iptables-save v1.4.7 on Tue Dec 16 10:28:53 2014 *nat :PREROUTING ACCEPT [176:13030] :POSTROUTING ACCEPT [41:3203] :OUTPUT ACCEPT [41:3203] -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080 -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE COMMIT # Completed on Tue Dec 16 10:28:53 2014 =============================== 其他重启服务,设置生效的都弄过,就差重启服务器了。。实在找不出问题 |
12
bellchu 2014-12-16 11:07:39 +08:00
ifconfig
iptables -nL iptables -nL -t nat 把输出弄出来看看 |
14
ob OP @bellchu
ipconfig 上面贴过 # iptables -nL============== Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:1723 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:47 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3306 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8080 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:30000:30100 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited TCPMSS tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU Chain OUTPUT (policy ACCEPT) target prot opt source destination ========================= # iptables -nL -t nat==================== Chain PREROUTING (policy ACCEPT) target prot opt source destination REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8080 Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 192.168.0.0/24 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) target prot opt source destination |
15
bellchu 2014-12-16 11:13:53 +08:00 1
|
17
ob OP @bellchu
放行80,8080,443的端口,加iptables -A INPUT -p tcp -m multiport --sports 80,443,8080 -j ACCEPT 这一句就够了吧,已经save重启,还是没用。 你提醒我了,会不会是我上面那上80端口转8080引起的。 我把跟8080相关的端口规则全部注释掉了,重启还是一样。 ========== 注释代码: #-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080 ... #-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT -A INPUT -p tcp -m tcp --dport 30000:30100 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A INPUT -p tcp -m multiport --sports 80,443,8080 -j ACCEPT -A FORWARD -j REJECT --reject-with icmp-host-prohibited -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu COMMIT |
21
cattyhouse 2014-12-16 13:04:57 +08:00 via iPhone
iptables -F
iptables -t nat -A POSTROUTING -o -j MASQUERADE 不要重启,然后再试试? |
22
cattyhouse 2014-12-16 13:05:11 +08:00 via iPhone 1
iptables -F
iptables -t nat -A POSTROUTING -j MASQUERADE 不要重启,然后再试试? |
23
ryd994 2014-12-16 15:31:11 +08:00
赞成cattyhouse:
-A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE 或者 -A POSTROUTING -o eth1 -j MASQUERADE 这里似乎不该-o和-s同时用 另外确认eth1才是连外网的对吧 |
24
ryd994 2014-12-16 15:35:01 +08:00
还有,既然有固定ip就试试SNAT吧
|
25
bellchu 2014-12-16 16:04:02 +08:00
@cattyhouse 你想说的是iptables -F -t nat吧
|
26
cattyhouse 2014-12-16 20:09:18 +08:00 via iPhone
我的意思是先清空所有iptables规则,然后加入一条MASQUERADE规则,不要重启,就能知道是不是iptables出问题了。
这个叫做排除法。 |
27
ob OP @cattyhouse 谢谢回复
iptables -F iptables -t nat -A POSTROUTING -j MASQUERADE 试了你说的这两条操作,还是一样,无法上网 @bellchu @ryd994 我这VPS的情况我说一下: 我服务器上面装了个tomcat,采用8080端口,默认80端口不给开放,所以访问80的时候做了个转发的规则到8080端口上面,这个按理说应该不会影响到吧? -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080 今天试了某一种情况是:连接上VPN之后,只能访问我tomcat下面部署的那个网站,访问百度,好像也是跳转到我tomcat下面的主页去。 日志记录功能,我还得去做下功课,尴尬啊 |
28
bellchu 2014-12-16 23:22:57 +08:00
@ob 晕,以为你8080做的是cache,你这样当然不能访问外部web
你应该区分一下-i ppp+进来的80和443和-i eth1进来的tomcat的感兴趣流量, -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080 |
29
bellchu 2014-12-16 23:30:40 +08:00
@ob 把你reject或者drop的规则改成log的就能看什么包被丢了
iptables -A XXXXX(Chain name) -p tcp -j LOG --log-prefix "WHY-DROP?" |
30
ob OP @bellchu
我把-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080这句换成你上面那句,还是不行。 看了一下其他日志: Dec 16 22:23:55 AY14040817051740241dZ pppd[2316]: peer from calling number 112.5.170.127 authorized Dec 16 22:23:55 AY14040817051740241dZ pppd[2316]: MPPE 128-bit stateless compression enabled Dec 16 22:23:57 AY14040817051740241dZ pppd[2316]: Cannot determine ethernet address for proxy ARP Dec 16 22:23:57 AY14040817051740241dZ pppd[2316]: local IP address 192.168.0.1 Dec 16 22:23:57 AY14040817051740241dZ pppd[2316]: remote IP address 192.168.0.234 ============== 不知道跟/etc/resolv.conf 下面的配置有没有关系 默认是: [root@AY14040817051740241dZ etc]# cat resolv.conf options attempts:1 timeout:1 rotate nameserver 10.242.197.248 nameserver 10.242.197.247 我改成 8.8.8.8 8.8.4.4 还是不行 ==================== 还我有这边连接上VPN之后的,ipconfig数据是这样的: C:\>ipconfig Windows IP 配置 PPP 适配器 aliyun: 连接特定的 DNS 后缀 . . . . . . . : IPv4 地址 . . . . . . . . . . . . : 192.168.0.234 子网掩码 . . . . . . . . . . . . : 255.255.255.255 默认网关. . . . . . . . . . . . . : 0.0.0.0 以太网适配器 本地连接 2: 媒体状态 . . . . . . . . . . . . : 媒体已断开 连接特定的 DNS 后缀 . . . . . . . : 这默认网关是不是有问题? |
31
bellchu 2014-12-17 00:12:21 +08:00
@ob -j LOG写过之后看看LOG VPN配置没问题的,但是建议你改掉地址,改成例如10.10.10.0/24的地址,防止和你本地LAN冲突 路由冲突的话都不知道怎么走
你80到8080的转发的那些规则把简单的事情复杂化了 以下是最简单的pptp的iptables规则,我从我机器上拉下来改了改 建议你先测试完PPTP再去写tomcat的规则 iptables -F iptables -X iptables -Z iptables -F --table nat ################################################# # # MSQUERADE # ################################################# iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -j MASQUERADE ################################################# # # Allow Interfaces and Ports # ################################################# #################Allow lo######################## iptables -A INPUT -i lo -j ACCEPT ###################SSH########################### iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --sport 22 -j ACCEPT ###################DNS########################### iptables -A INPUT -p udp --dport 53 -j ACCEPT iptables -A INPUT -p udp --sport 53 -j ACCEPT ###################ICMP########################## ###Uncomment for testing iptables -A INPUT -p icmp -j ACCEPT ###################PPTP####################### iptables -A INPUT -i eth1 -p tcp --sport 1723 -j ACCEPT iptables -A INPUT -i eth1 -p tcp --dport 1723 -j ACCEPT iptables -A INPUT -p gre -j ACCEPT ###################Output HTTP request########### iptables -A INPUT -i eth1 -p tcp --sport 80 -j ACCEPT ############DROP Other on eth1################### iptables -A INPUT -i eth1 -j LOG --log-prefix="=DROP-" iptables -A INPUT -i eth1 -j DROP |
33
ob OP |
34
bellchu 2014-12-17 17:09:52 +08:00
|
37
bellchu 2014-12-17 17:55:56 +08:00
@ob 我用你guest的pptp账户登录了一下 在iPhone上登录,上网没问题
说明后来的iptables的修改已经OK了,我估计问题出在你的localip remoteip的设置,可能和你本地的网络冲突了 我建议你改成10.10.10.0网段的地址 |
38
ob OP |
42
ob OP |
44
bellchu 2014-12-17 21:08:10 +08:00 1
@ob 我现在就在你VPN上,但是问题是连上之后要不断的ping 10.10.0.1,不然的话索性就没数据可以过了,很奇怪,不知道你还改过什么其他的没
|
46
ob OP 我草,终于可以的,问题出在我连接的属性上面,参考链接: http://zhidao.baidu.com/question/168305032.html
============ 按照这个改的: 打开虚拟拨号程序,但不要点连接,而是点属性 点开属性后,在选项卡上点网络,点TCP/IP设置的属性,右下有一个高级,点开后,会有一个在远程网络上使用默认网关,将这个前面的勾取掉,然后点确定,就OK了,楼主还有什么不明白或者新情况,可以补充问题 ================== 问题点定位错了,一直在绕弯路,按上面改了之后,终于可以了。 感谢楼上各位耐心解答。 特别感谢@bellchu。 谢谢大家! |
47
bellchu 2014-12-17 21:17:43 +08:00
@ob .........是你写的net.ipv4.conf.default.accept_source_route = 0 改成1就好了
|
48
bellchu 2014-12-17 21:21:42 +08:00
@ob 不用谢,我是红领巾,但是问题真不是你说的百度知道上的,你得把sysctl给恢复到默认,改的太乱了,好多都是不存在的开关。
|
49
ob OP |
52
bellchu 2014-12-17 21:55:02 +08:00
|
54
ob OP @bellchu
绕了一圈,发现还是没有达到目的。 如果去掉“在远程网络上使用默认网关”勾选,对外的IP还是我本地的IP,不是VPN的IP,我想要的目的是让自己用VPN的网络访问各大国内网站。 net.ipv4.conf.default.accept_source_route = 0 改成1就好了 ==== 这个默认就是改成1的,如果我这个远程网络不去掉,还需要啥配置,让直接连VPN上网吗? |
55
bellchu 2014-12-18 10:24:33 +08:00
@ob 在Win机器上PPTP连接是默认用远程网关的,你删掉一个重建一个连接看看是否正常
你sysctl里面几个route相关的开关都是关闭的,默认sysctl.conf文件只需要改一个ipforward就能让pptp转发IP包配合masquerade就能让你的PPTP客户端上网,其他不用改 你把sysctl恢复到我贴的那些value先 |
58
ob OP @assiadamo 还是一样,你是什么情况?我是按上面54楼那个设置一下,可以连上,但是IP还是本地的,访问被屏蔽的网站还是不行。等于是没有效果。
|
59
assiadamo 2015-04-18 17:41:57 +08:00
@ob 我解决了这个问题了,见http://rtmsoft.me/?p=82
|
60
assiadamo 2015-04-18 17:42:46 +08:00
#在/etc/ppp/ip-up中exit 0上添加
/sbin/ifconfig $1 mtu 1500 |