V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Linode 各机房速度测试
http://www.linode.com/speedtest/
diwup
V2EX  ›  Linode

同一台VPS,既是VPN也是MySQLServer,结果VPN总是被绕开

  •  
  •   diwup · 2012-10-05 11:18:18 +08:00 · 1387 次点击
    这是一个创建于 4467 天前的主题,其中的信息可能已经有所发展或是发生改变。
    情况是这样滴:

    1. 我家的IP: home.home.home.home
    2. 我这台VPS的IP: jp.jp.jp.jp
    3. 我在这台VPS上即搭了VPN也搭了MySQL server
    4. 我用MacBook挂上VPN,确认勾选了 send all traffic through vpn
    5. 我打开 Terminal.app,输入了以下命令

    mysql -u root -h jp.jp.jp.jp -p

    连上了MySQL server,然后我查了下“我是谁”

    select user();

    得到的结果是:

    [email protected]

    也就是说,我通过 Terminal.app 连 MySQL,并没有经过 VPN :(

    作为对照实验,我连上另一个机房在美国的VPN(IP: us.us.us.us)

    登陆我自己VPS上的MySQL,然后 select user(),得到了以下结果:

    [email protected]

    难道说,如果 VPN 和 MySQL server 在同一台机器的话,我这么干,VPN 总是会被绕开?

    大家帮我分析分析...
    8 条回复    1970-01-01 08:00:00 +08:00
    bearice
        1
    bearice  
       2012-10-05 11:35:04 +08:00
    假如你“所有”的数据都通过VPN走的话,那么VPN本身的数据是不是也要通过自己走一遍呢?

    如果你真的需要通过VPN访问VPN服务器,请使用对端地址(即服务器上配置的localip)
    diwup
        2
    diwup  
    OP
       2012-10-05 11:40:32 +08:00
    @bearice 谢谢,我这么弄的初衷是,利用 iptables 的疏导,使得 MySQL server 只接受 VPN 的 IP 的远程登陆,拒绝其他所有 IP。而现在 VPN 和 MySQL 在同一台机器上,就很囧了。但是我还是想这么玩玩... 请问如何配置 localip...
    reus
        3
    reus  
       2012-10-05 12:15:55 +08:00
    VPN的全称是Virtual Private Network,也就是说连接上vpn服务器之后,本地机器和远程机器都在同一个虚拟局域网内,本地机器和远程机器都有一个此内网的ip
    所以连接mysql时应该使用此虚拟内网的地址(配置vpn时有配置的,192.168.x.x之类的),而不是用远程服务器的公网ip。
    vpn服务器只监听一个端口,这个端口和mysql服务器的端口是同等地位的。vpn不是包裹在你的vps的外面,而只是开了一个端口。mysql是另一个端口,你用公网ip作为远程服务器的地址,直接就连上mysql的公网端口了,vpn的端口不是挡在外面的,所以也没有“绕道”。
    mysql貌似没法指定绑定地址,所以你要把非vpn的地址过滤了,然后在本地机器上用vps的vpn内网ip连接mysql
    diwup
        5
    diwup  
    OP
       2012-10-05 12:34:17 +08:00
    @reus 大谢!我这就瞅瞅...
    zhangxiao
        6
    zhangxiao  
       2012-10-05 12:57:24 +08:00
    “mysql -u root -h jp.jp.jp.jp -p”

    这里是不是应该是 "mysql -u root -h <vpn_server_up> -p“?
    wwwjfy
        7
    wwwjfy  
       2012-10-05 13:02:03 +08:00
    看样子是路由表的关系,看连接server的走的哪条线
    我见过不同的设置,有从vpn走,也有从eth0走的
    bearice
        8
    bearice  
       2012-10-05 13:05:57 +08:00
    @diwup 以linux的pptpd为例,/etc/pptp.conf里有
    localip 192.168.10.1
    remoteip 192.168.10.128-255
    的配置,其中192.168.10.1即为服务器的IP
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   936 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:15 · PVG 05:15 · LAX 13:15 · JFK 16:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.