ssh SOCKS代理访问google失败的问题

linode的vps,ssh SOCKSv5代理,访问google经常被提示:

We’re sorry…

… but your computer or network may be sending automated queries. To protect our users, we can’t process your request right now.

See Google Help for more information.

起初以为是google认为这个ip发送了太多请求,有机器人嫌疑。 但是这个ip是自己的并未有大范围传播。经过一番搜索,了解到原来是ipv6的缘故。有人说是google屏蔽了linode的ipv6。 只需要在linode的vps上禁用ipv6就可以了。
继续阅读“ssh SOCKS代理访问google失败的问题”

selinux引起CentOS无法使用public key登陆的问题

在新安装的centos上建立 /root/.ssh目录,chmod为700, 这个目录中建立 authorized_keys文件,复制公钥进去,设置权限为600,从其他机器使用public key进行ssh登陆,这件事已经做过无数次了。

这次就总是无法登陆成功,退化为使用password,可以登陆成功。
对比了 /etc/ssh/sshd_config文件,和其他服务器没有任何区别。

原来是selinux引起的。 在其他可以正常登陆的服务器上, /etc/selinux/config中, selinux=disabled。而在这次出问题的centos上,则是selinux=enforcing。关于这一点可以使用getenforce命令查看。

继续阅读“selinux引起CentOS无法使用public key登陆的问题”

如何透明的穿过跳板机

出于安全和管理方面的需要,许多公司的服务器必须通过跳板机才能登陆。也就是说像这样子:
假设我们定义3个名字:
localhost 代表工程师工作使用的一个ubuntu系统的pc机。
hopper 代表跳板机。
server 代表工程师想要登陆的服务器。

那么工程师需要在localhost上执行 ssh hoper,这样就进入了hoper服务器。然后再执行 ssh server,这样就登陆了server。
也可以这样: 再localhost上直接执行 : ssh -t hopper ssh -t server。直接一条命令就登陆到server。

当需要scp一些文件的时候则显得更加麻烦,要再hopper上建立一个临时目录,scp到hopper,然后再从hopper上scp到server。这简直是无法忍受的。

不过这样的方式都还是显得太过于麻烦。 还有更好的办法:

继续阅读“如何透明的穿过跳板机”

git命令笔记

撤销修改,回退到上一个版本(上一次commit):

git reset --hard HEAD

如果要退回到过往的版本,可以写做 git reset –hard {commit id}, commit id是一个字符串,大约7位。 可以通过 git reflog命令查看过往的commit记录获得。 HEAD代表上一次commit。 再之前一次可以写做 HEAD^。同理HEAD^^,HEAD^^^, HEAD^100。

分支操作:
列出所有分支:

git branch

列出所有的分支。 当前的工作分支前会以星号*标记。

创建名为dev的分支:

git branch dev

切换到dev分支:

git checkout dev

在dev分支上开发一个feature,经过测试之后,需要合并回master上去。 那么需要先 git checkout master切换回master分支。然后:

将dev分支上的修改merge到当前分支:

git merge dev

删除dev分支:

git branch -d dev

创建工程:
如果是在服务器上创建工程,只需要git clone下来就可以继续使用了。
如果是在本地创建工程,要提交到服务器上,需要对本地工程的remote进行操作。
首先仍然需要在服务器上创建工程,例如创建之后的地址为:git@gitserver:prefix/project.git
那么在本地进入目录下:

git remote add origin git@code.wilddog.cn:wdserver/cloud-core-new.git

接下来就可以正常的commit,push了。

继续阅读“git命令笔记”

iptables笔记

平时我们在概念中称呼iptables为防火墙的近义词,何况又有/etc/init.d/iptables (start|stop)这样的启动和停止的命令,那么就感觉上似乎iptables一直在工作,它仿佛应该是一个daemon进程。但其实iptables是一个工具,用户通过iptables配置内核中的netfilter模块的规则。配置完之后iptables进程就退出了,内核中的netfilter模块持续使用它的规则表继续工作。所以平时在ps -ef命令中是不会看到iptables的进程的。

iptables中有链(chain)和规则的概念。
iptables中默认有5个chain,分别是PREROUTING,INPUT, FORWARD, OUTPUT, POSTROUTING。这5个chain的场景就如字面意思,比如input就是数据包流入。
继续阅读“iptables笔记”

路由器刷openwrt系统,打造翻墙路由器

我们都需要使用google提供的搜索,gmail等优质服务。但是由于方墙的存在,使得大家各自搞各自的翻墙办法。 其实还有一个不错的办法,那就是在路由器这一层翻墙,对路由器用户透明。

我们使用的方案是openwrt系统, shadowsocks,chinadns。 shadowsocks是一个sock代理软件,而chinadns则好像为了解决天朝的dns污染。

这次没有边做边记录,现在是2,3天之后了,凭借一些记忆写下此篇文章,以供参考。

继续阅读“路由器刷openwrt系统,打造翻墙路由器”

修改atlassian系列scm系统的域名

使用了atlassian系列的scm系统,包括crowd, confluence, jira。 形式如
http://olddomain/crowd
http://olddomain/jira
http://olddomain/wiki

现要把olddomain修改为newdomain。 官方文档中并没有confluence系统中user directory修改的文档,管理后太中也未看到此项功能。 经过一番琢磨和google,最终解决。记录一下过程。

crowd:
修改 crowd.properties文件中的crowd.server.url和application.login.url中的host为新的hostname。
在applications中修改各个application的url。

confluence:
登录管理后台(此时crowd不能认证,但是内置的confluence管理员账户还可以登录,如果不能了,可能需要手动修改配置),修改Server Base URL。
数据库表, update cwd_directory_attribute 表。 修改 attribute_name的值为“crowd.server.url”的记录的attribute_value字段。
检查classes目录下的crowd.properties配置文件中的crowd server url。如果需要修改,就修改为新的crowd域名。

jira:
同confluence,update数据库字段。

(全文完)

rsync使用笔记

rsync是一个同步文件的工具,提供了增量复制的功能。

服务端配置:

建立配置文件,在/etc/rsyncd.conf。内容如下:

uid = root
gid = root
use chroot = yes
max connections = 4
pid file = /var/run/rsyncd.pid

[backup]
    path = /data/backup
    hosts allow = 10.10.11.123
    read only = no

启动rsync daemon进程。 /usr/bin/rsync –daemon

在客户端:
rsync -va dirtobackup serverip::backup/
(全文完)

subversion服务器搭建并集成atlassian crowd做账户管理

首先是一堆依赖的安装。

yum install make
yum install libtool
yum install zlib zlib-devel

yum install libserf

yum install openssl openssl-devel

yum install apr apr-devel apr-util apr-util-devel
yum install perl-devel perl-ExtUtils-Embed

sqlite yum源里的版本太低。 需要到 sqlite.org下载最新的源代码, configure; make; make install; 安装

subversion.apache.org下载最新的源代码。
./configure –prefix=/data/software/subversion
make
make install

继续阅读“subversion服务器搭建并集成atlassian crowd做账户管理”

linux系统gateway的配置

几个vps(虚拟主机),只有一个拥有公网ip地址,所有的vps都拥有内网ip地址。其它的vps需要通过拥有公网ip的这个vps进行公网访问,以方便yum安装软件等需求。

在没有公网ip的vps上需要进行的设置:

/etc/sysconfig/network-scripts/ifcfg-eth0 文件中: GATEWAY=10.x.x.x

service network restart

到此完成。

 

接下来是拥有公网ip的那台vps上进行设置:

echo “1” > /proc/sys/net/ipv4/ip_forward

注意,这条命令是临时开启系统的转发功能,系统重启后会恢复为默认设置。 可以通过在/etc/rc.d/rc.local中加入上述命令,使之在系统启动时被执行。

打开iptables的nat功能:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

到此设置完成。

 

其它vps应该可以访问公网了。

(全文完)