最近在Linux下利用pptp架设了一个VPN Server,在使用过程中发现了一些问题“
1、在win2000下(client端,上网方式为小区宽带,通过DHCP分配公网IP),利用系统内置的VPN设置连接成功后发现只能访问公司的内网,而不能访问公网。查了些资料发现确实如此,只有采用IPSec技术的VPN才能同时访问内网和外网。真的是这样吗?
2、如果client安装了IPX协议和NETBEUI协议,就会连接不上,必须卸载这两种协议才能够连接成功。请问还有其他的解决方法吗?
cnriver 回复于:2004-11-19 20:07:05
1、不一定,如果在公司vpn上做适当设置,可以同时访问内网和公网。
2、好像不是问题??!
tjyihui 回复于:2004-11-20 11:11:22
引用:原帖由 "cnriver" 发表: 1、不一定,如果在公司vpn上做适当设置,可以同时访问内网和公网。
2、好像不是问题??!
to cnriver
1、你说的在公司vpn上做适当设置, 能具体说一下吗,或者给个思路也行。我问过2个在企业中做网管的同学,他们利用Win2000 Server做VPN时,client通过VPN连接后也是在访问内网的同时不能访问外网的。
2、我上传了两张截图可以参考
另外还想问问采用PPTP的方式,能不能实现更复杂的用户访问控制呢?

| | 而我在“VPN连接”属性中把IPX/SPX和NetBEUI协议取消后就能连接成功了。 |
|

| | 当client安装了IPX/SPX和NetBEUI协议,连接VPN时会提示这个错误 |
|
傻仔 回复于:2004-11-20 12:54:01
1。绝对可以,是你route 和dns设置的问题。我公司现在对于外来人员都是通过内部拨pptp然后上公网,也有外网拨入然后上公网。
2。没做测试,pptp只能跑tcp/ip
tjyihui 回复于:2004-11-20 14:09:52
to 傻仔:
第一个问题已经解决了,我查了一下,原来是公司的内部路由设置指向问题,已经解决。可以同时访问内网和外网。我在登陆VPN成功后,执行了一个tracert命令:tracert www.sina.com.cn -d 发现从client访问公网前先要经过公司的网关。这样无异会使访问公网的速度下降,请问有解决的方法吗,可以让client直接方法公网,而不必经由公司。
傻仔 回复于:2004-11-20 14:28:11
主要是client的ppp连接后route问题,因为win的ppp默认连接后就把default gateway 改为新的连接。因此要解决的话只有手工改route设置,就是运行命令或事先写好bat文件执行,把内网的net写条route,接入internet的写为default gateway
tjyihui 回复于:2004-11-20 15:29:33
to 傻仔
你说的很对,我在连接VPN成功前后分别执行了netstat -r,发现default gateway 确实改变了。请问你说的手工改route设置,是指在client端进行设置吧(比如执行bat文件)。不过这样就增加了客户的联网难度,还得多加一步才能连上公网。有没有可能在VPN Server端进行解决呢。
傻仔 回复于:2004-11-20 16:15:57
是啊,起码我是找不到别的方法,那位有高见不妨说说。
cnriver 回复于:2004-11-20 22:47:50
服务器端很难设置,只能从client想办法,去掉ppp远程连接的默认网关,加上路由。
tjyihui 回复于:2004-11-21 10:05:36
谢谢大家的回复,第二个问题已经解决了。
在client端,连接成功后执行
//删除pptp建立的默认网关
route delete 0.0.0.0 mask 0.0.0.0 10.100.0.201
//增加一条指向公司内网的路由
route add 10.100.0.0 mask 255.255.255.0 10.100.0.201
后就能同时访问内网和公网了。
注意:
10.100.0.0是公司内网的网段
10.100.0.201是client端通过VPN连接成功后获得的IP地址
而对于第一个问题,即“必须卸载IPX和NetBEUI协议才能连接成功”我还是不明白,我看了一下 Microsoft's PPTP FAQ
http://www.microsoft.com/ntserver/ProductInfo/faqs/PPTPfaq.asp
里面写得很清楚
because PPTP supports multiple protocols (IP, IPX, and NetBEUI), it can be used to access a wide variety of existing LAN infrastructures.
看来PPTP是支持IPX and NetBEUI协议的,可是为什么连接不上呢,是不是Linux Server端没有安装对应的IPX和NetBEUI协议呢?或者是其他的原因?
tjyihui 回复于:2004-11-21 14:50:51
真是奇怪呀,关于第一个问题,我今天又有了新发现,以前没有注意到。就是在弹出图2所示“网络协议连接结果”那个窗口时,点击“接受”,也会连接成功,并且可以访问内网资源。真是奇怪呀,以前到这步时,我就点“挂断”放弃连接了,所以一直没有发现居然还可以连接成功的!但是原理还是搞不懂。
cnriver 回复于:2004-11-21 15:09:05
你的pptp服务器端只支持tcp/ip,连接成功是tcp/ip连接成功,IPX and NetBEUI协商没有通过。所以还是可以连接的。
tjyihui 回复于:2004-11-21 19:55:45
to cnriver
那如何也让IPX and NetBEUI协商通过呢?
cnriver 回复于:2004-11-21 21:34:07
好像没必要IPX and NetBEUI协商通过吧,IPX很少用的,想要NetBEUI协商通过,那么vpn服务器采用windows吧。
最爱linux 回复于:2005-01-31 14:56:47
to:tjyihui
tjyihui兄你好,对于第二个问题其实很容易解决,只要在client端拔号的时候不启用默认路由就可以了,问题::我现在想实现你所提的第二个问题,也就是client上公网时走内网再到公网,我试了很多方法都不行,但我知道主要问题应该还是路由问题,请高人指点~!!
bluechen 回复于:2005-02-03 10:47:10
对于默认route改变的问题,不需要那么麻烦,只要在VPN拨号的连接,选到网络--->;tcp/ip,高级里把“在远程网络上所用默认网关的”拿掉,就可以了。
ghbspecial 回复于:2005-04-15 23:35:50
对于默认route改变的问题,不需要那么麻烦,只要在VPN拨号的连接,选到网络--->;tcp/ip,高级里把“在远程网络上所用默认网关的”拿掉,就可以了。
如果拿掉默认网关就不是加密传输了!!!!!
nisshinzgz 回复于:2005-04-19 17:22:55
我还有个问题!
为什么我的PPTPD启动后只能有一个拨号连接上,第2个就连接不上了呢?
daixj 回复于:2005-04-20 10:29:23
引用:原帖由 "bluechen"]对于默认route改变的问题,不需要那么麻烦,只要在VPN拨号的连接,选到网络--->;tcp/ip,高级里把“在远程网络上所用默认网关的”拿掉,就可以了。 发表:
同意!
mdctmk 回复于:2005-04-20 12:25:53
引用:原帖由 "ghbspecial" 发表: 对于默认route改变的问题,不需要那么麻烦,只要在VPN拨号的连接,选到网络--->;tcp/ip,高级里把“在远程网络上所用默认网关的”拿掉,就可以了。
如果拿掉默认网关就不是加密传输了!!!!!
为什么拿掉网关就不是加密了呢,不懂
chinesecai 回复于:2005-05-12 22:06:21
以上问题的答案都是不错的实践结果,但是还是有很多的问题
platinum 回复于:2005-05-12 22:35:01
第一个也不是问题,绝对可以
不过关键要看你如何设置了
unixli 回复于:2005-05-20 13:24:28
现在公网上只用TCP/IP,INTERNET服务商不会为你提供其它协议的服务。
只有在内部网才用IPX和NETBEUI,在VPN应用中,只有先用TCP/IP先连接后才能应用IPX和NETBEUI这些协议。
协议定义已明确的定义了协议的可应用范围。
wildgoose 回复于:2005-05-20 13:53:57
给你一个建议,在vpn连通以后做如下路由修改
1。添加一条道你的vpn服务器的路由,下一跳使用你原来的默认网关。对,没错,一定要是你原来的默认网关。
2。删除默认路由
3。添加默认路由,该路由是在linux 服务器上作过的路由。
ok
如果距离远,最好把dns改为你公司的dns
|