有没有朋友会调教 Linux 网络?能否给我支个招呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
liuchen9586
V2EX    Linux

有没有朋友会调教 Linux 网络?能否给我支个招呢?

  •  
  •   liuchen9586 2015-03-07 19:30:01 +08:00 5843 次点击
    这是一个创建于 3878 天前的主题,其中的信息可能已经有所发展或是发生改变。
    拓扑图是这样的:

    
    中国境内服务器接受连接的虚拟网卡IP是172.16.36.1,与HK服务器链接的虚拟网卡IP是10.7.0.1
    HK与中国境内服务器链接的虚拟网卡IP是10.7.0.2

    左边区域是中国境内的服务器,右边区域是通往境外的,两个区域内网IP段不同。
    我想实现的效果是,我通过VPN协议拨入位于中国境内的服务器,而我的数据出口最终是从HK出来的(因为企业宽带比家用宽带稳定些),而中国境内的服务器本身通信的数据不受影响,仍然从eth0走。
    我现在的做法就是在HK服务器上直接对10.7.0.0/24这个网段的数据做NAT
    -A POSTROUTING -s 10.7.0.0/24 -o eth0 -j MASQUERADE

    然后我在中国境内服务器上做NAT
    -A POSTROUTING -o tun0 -s 172.16.36.0/24 -j SNAT --to-source 10.7.0.1

    结果这样上不了网,只能链接中国服务器的SSH。是不是我哪一步没做到位?大家可以给我指点下吗?
    21 条回复    2015-09-11 23:38:08 +08:00
    soiidseg
        1
    soiidseg  
       2015-03-07 20:35:58 +08:00
    为何不在境内服务器用iptables或者haproxy之类的做转发?
    liuchen9586
        2
    liuchen9586  
    OP
       2015-03-07 20:37:54 +08:00
    @soiidseg haproxy是基于TCP层的,我这是IP层的数据转发,行不通
    我上面写的就是iptables命令,不成功
    soiidseg
        3
    soiidseg  
       2015-03-07 20:42:04 +08:00
    @liuchen9586 你用的哪个vpn协议?
    twl007
        4
    twl007  
       2015-03-07 20:43:08 +08:00 via iPhone
    没做snat吧……
    ipconfiger
        5
    ipconfiger  
       2015-03-07 20:43:44 +08:00
    试试socat
    liuchen9586
        6
    liuchen9586  
    OP
       2015-03-07 21:13:16 +08:00
    @soiidseg 我感觉协议不是很重要吧,最重要的是隧道通?或者说有关系?我也不太清楚
    用户连中国服务器用PPTP,中国中转服务器连HK用的shadowvpn

    @ipconfiger socat,haproxy是基于TCP层的,我的是IP层的。


    @twl007 中国的像HK转发我做了SNAT啊,不通(看上面命令
    twl007
        7
    twl007  
       2015-03-07 21:22:56 +08:00 via iPhone
    @liuchen9586 看错了 是没做NAT 额 弄一下prerouting 然后用iptables -L查看一下要有对应的NAT和SNAT纪录
    gamexg
        8
    gamexg  
       2015-03-07 21:32:19 +08:00   2
    很久没弄网络了,具体命令记不清了。大概做法是:
    在 china server 上面另加一个路由表X,并设置这个路由表的默认路由是 HK server 虚拟网卡IP。
    然后 iptables 指定china 客户的连接使用路由表X。

    你现在直接设置的SNAT,造成china 客户发起的请求出口地址变成了内网地址,但是IP包转发是依靠目的地址匹配路由表来走的。目的地址没有变,还是走的国内的上级网关,但是源地址是内网地址,会被上级路由器丢掉的。
    gamexg
        9
    gamexg  
       2015-03-07 21:38:56 +08:00   2
    http://biancheng.dnbcw.info/linux/418649.html
    linux 高级路由即基于策略的路由比传统路由在功能上更强大,使用也更灵活,它不仅能够根据目的地址来转发路径而且也能够根据报文大小、应用或ip源地址来选择路由转发路径从而让系统管理员能轻松做到。


    http://itoedr.blog.163.com/blog/static/12028429720135237643677
    linux路由工具:iproute2/iptables(路由配置实例)
    ryd994
        10
    ryd994  
       2015-03-08 00:30:35 +08:00 via Android
    iptables mark一下,然后ip route选择出口
    zk8802
        11
    zk8802  
       2015-03-08 10:50:52 +08:00
    1. 你在中国的服务器上开 IPv4 转发了吗?
    echo 1 > /proc/sys/net/ipv4/ip_forward

    2. 假设中国服务器的虚拟网卡是 xxx,你应该为来自网卡 xxx 的数据指定默认路由为 10.7.0.2。
    ip route add default via 10.7.0.2 dev xxx table 101
    ip rule add from 172.16.36.0/24 lookup 101
    JackWindows
        12
    JackWindows  
       2015-03-08 11:01:53 +08:00 via iPad
    ls正解,lz路由都没配,172.16.36.0/24怎么知道自己的out interface是tun0呢?
    lujiajing1126
        13
    lujiajing1126  
       2015-03-08 11:35:02 +08:00
    调试一下iptables呗。。你的包肯定被吃掉了
    sudo iptables -L -nv
    lujiajing1126
        14
    lujiajing1126  
       2015-03-08 11:46:28 +08:00
    我感觉这个样子的好像不太对
    如果vpn的话,你拨号上去,你的client机器和两台服务器应该处于同一内网网段192.168.122.X
    这时候你的client直接用HK的机器的内网ip做代理就好了吧
    HK机器上面加squid或者其他的代理。。
    配路由表啥的。。很容易把网络直接配挂掉
    datocp
        15
    datocp  
       2015-03-08 13:26:54 +08:00
    已经看得很晕了。个人觉得要选也要选得公认的好用的文档齐全的vpn

    https://www.softether.org/4-docs/1-manual/A._Examples_of_Building_VPN_Networks/10.6_Build_a_LAN-to-LAN_VPN_(Using_L3_IP_Routing)
    有点像推送路由表的味道,据说openvpn很好实现。softether似乎没测试成功。
    xylophone21
        16
    xylophone21  
       2015-03-08 18:28:27 +08:00
    需求是:
    而我的数据出口最终是从HK出来的(因为企业宽带比家用宽带稳定些),而中国境内的服务器本身通信的数据不受影响

    简化来说就是HK的走HK,CN的走CN. 那你连VPN干什么?

    你的描述实在有些费解.
    比如你到底是谁,你在哪里?eth0是哪个?

    还有Linux Server China是放在深圳湾吗?
    liuchen9586
        17
    liuchen9586  
    OP
       2015-03-08 19:03:12 +08:00
    @zk8802
    @datocp
    @lujiajing1126
    @JackWindows 好像是路由表的问题,我现在在看Linux的IP RULE用法,看的有点晕orz
    lujiajing1126
        18
    lujiajing1126  
       2015-03-08 20:10:11 +08:00
    @liuchen9586
    ip rule 是用来做策略路由的。。可以根据源地址进行策略路由
    liuchen9586
        19
    liuchen9586  
    OP
       2015-03-08 20:15:48 +08:00
    @lujiajing1126 以前不知道有ip rule这东西……是我想当然了
    rwzsycwan
        20
    rwzsycwan  
       2015-03-09 13:02:42 +08:00
    这是做跳板??
    ultimate010
        21
    ultimate010  
       2015-09-11 23:38:08 +08:00
    我用过一个 vpn 服务商就是这么搞, vpn 直连连阿里云,然后国外线路在阿里云上连香港,国内阿里云直接转发,速度贼快,当然按流量计费。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1222 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 17:35 PVG 01:35 LAX 10:35 JFK 13:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86