linux的tcp_forward的使用

我服务器在国外,上海电信从刚开始的流畅访问慢慢变成了现在的60%+的丢包!!!大概跟 踪了下路由的节点。明显是上海电信到骨干网在捣乱,而从北京电信(机房)访问的几乎就 不丢包了,上海电信到北京电信的访问是稳定且非常快速的。这让我的小脑瓜激动了不少。

ssh不是那什么可以做端口转发么,linux说不定也可以,于是在网上随便一找,果然支持 tcp_forward啊,执行下下面的内容:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp --dport 8388 -j DNAT --to-destination US_VPS_IP:8388
iptables -t nat -A POSTROUTING -p tcp -d US_VPS_IP --dport 8388 -j SNAT --to-source JAPAN_VPS_IP

添加执行,然后本地的ip指向北京电信的ip, 立马访问流畅了不少

tramp文件引起的Tramp异常

我使用的是seafile来进行不同计算机之前的文件同步,包括emacs的所有配置管理,基本上 都是工作正常的,但前两天新加了一台win7,然后使用plink访问远程的时候就会华丽的无任 何输出或者说“ls”找不到。

我甚至关闭了几乎所有的插件,都还是会出问题,但完全不使用任何配置却正常(我将 plink添加到了系统的path中,这并不是我的风格)。

后来我关闭了所有的插件,依然出问题。无赖之下我清空了配置目录中的所有内容,然后就 正常了。我试着从配置目录一个一个恢复,直到tramp文件出来就挂掉了。

tramp文件是tramp-cache使用的,缓存一些乱七八糟的东西。

只所以会这样是因为这个文件默认保存在 user-emacs-directory 目录下,我将这个目录设 定在一个自定义的目录,比如emacs_config,然后使用seafile同步文件,自然包括了这个 文件。

对我而言,有两个解决方案:

  1. seafile同步中排除这个文件
  2. 在.emacs中添加下面的配置

(setq locate-user-emacs-directory “~/.emacs.d”)
(setq tramp-persistency-file-name nil)