归档文章: Linux

科学上网trojan的安装和使用

最近无意中看到youtube推荐了后端关于v2ray,trojan的介绍,最早一直用goagent+套cdn的方式,虽然速度并不快看视频不太合适,但上网还是完全能够胜任的。 昨天尝试部署了trojan,可以正常使用,但是科学上网的网速并没有比goagent快多少(网速的问题后续我们再解释,定位中发现是digitalocean sfo location的vps的问题,这个待切换location后验证)。好了,我们就开始部署trojan 服务罢。

1) 首先你要有一个vps服务或者。 我使用digitalocean,是因为最早提供的ssd vps比较便宜容易瞎折腾,所以方便还是继续哟用了。 但因为do没有日本,香港的节点。亚洲只有新加坡(实测ping值比较高,但下载速度还是不错的)。 如果不做建站的话,目前的vps或者iaas的平台非常多了, 大家完全可以看看其他大厂的。有的还免费一年。

2) vps的系统选择linux服务器。 因为我的一台vps 5年前就已经存在, 所以这次就在centos上做了实验。

3) 安装server端的trojan服务。

首先我们简单的介绍一下大概的拓扑图。

browser -> trojan(client) server -> trojan server -> 被墙的网站

所以我们需要安装有个trojan 服务(最少), trojan(client) server 是作为你本地使用的proxy服务, trojan (client) server 是一个socks5 服务, 然后收到browser的请求后, 封装成trojan的协议,发送给trojan server, trojan server 再请求被墙的网站。

trojan安装方法非常简单, github上有详细的介绍,照着安装通常不会有问题。
快速安装的文档: https://github.com/trojan-gfw/trojan/wiki/Binary-&-Package-Distributions

这个是配置文档: https://trojan-gfw.github.io/trojan/config

4) 配置项注意项。 更多…

linux系统的ssh客户端如何使用sz/rz上传下载文件?

linux在系统的gnome ssh terminal 如何使用sz/rz上传下载文件?如果我们在windows使用secure CRT , xhell 等ssh客户端工具,大家可能对sz/rz 命令并不陌生,但是我们如果我们的操作系统是linux,用linux的gnome ssh terminal 如何使用sz/rz 来进行上传下载文件呢?

使用screen命令,screen支持ZMODEM 协议。
从远端下载文件:

1) 启动一个screen窗口
screen -S downloadfile
然后按Ctrl+A, 然后输入:zmodem catch
正常情况下,会返回zmodem mode is catch, 那么表示已经开始可以捕捉zmodem协议传输文件了

2) ssh 远端跳板机,然后选择登陆的服务器。sz /path/file 回车后, 显示 :!!! rz -vv -b -E,然后文件就会被下载到运行screen -s downloadfile 时的当前目录。

同理, 如果上传文件

1) 第一步同上

2) ssh 到登陆的服务器后。 输入 rz 命令, :!!! sz -vv -b 提示后, 输入本地计算机的文件路径, 回车即可。

备注: 通常我们可以直接ssh登陆的服务器,并不需要使用 rz/sz, 直接scp即可。 但是我们ssh到跳板机这种情况, 可能就必须要借助sz/rz工具和 zmodem 协议了。 最后执行完任务后,记得exit,退出当前screen。

ubuntu openvpn客户端配置

公司最近的vpn由思科vpn提供商变为了免费的openvpn。windows的版本直接安装并拷贝相应的配置文件,打开openvpn直接提示你输入用户名密码, 我们输入域用户名密码即可。
在家里我的一台电脑是ubuntu 18.04 系统,只能手动去配置下了。大概搜索了方法,顺便记录一下。

1) 首先安装openvpn
sudo apt-get install openvpn

2) 默认安装的配置路径位置在 /etc/openvpn/client /etc/openvpn/server
因为我们不需要自己搭建vpn服务,所以我们仅需要将公司提供给我们的car.crt 和 client.ovpn的文件放入 /etc/openvpn/client。 其次openvpn的linux版本安装的只是一个命令行,无gui, 也不会弹窗让你输入用户名,密码。所以我们需要将用户名和密码以文件的形式保存到 passwd 文件中。 第一行 用户名,第二行密码。 如果更换了密码,下次连接前手动前修改下密码即可。

3)启动openvpn客户端。

sudo openvpn --ca /etc/openvpn/client/ca.crt --config /etc/openvpn/client/client.ovpn --auth-user-pass /etc/openvpn/client/passwd --log-append /tmp/openvpn.log
日志的输出是我们诊断问题尤其重要的,如果我们的客户端连接有问题,我们应该查找输出日志去协助诊断问题。

如果我们没有指定 –daemon 则会挂在前台, 如果指定–daemon后,则会后台运行。
启动成功后,我们ping下公司的内网地址,可以访问内网资源,我们就成功了。

4) 关于dns问题
更多…

rabbitmq 因为磁盘空间不足等问题无法重新启动的问题解决

当因为电源问题或者磁盘空间不足导致rabbitmq服务异常停止之后,再次重启无法启动的问题解决。
RabbitMQ 3.5.6. Copyright (C) 2007-2015 Pivotal Software, Inc.
## ## Licensed under the MPL. See http://www.rabbitmq.com/
## ##
########## Logs: /var/log/rabbitmq/[email protected]
###### ## /var/log/rabbitmq/[email protected]
##########
Starting broker...

BOOT FAILED
===========

Error description:
{could_not_start,rabbit,
{{badmatch,
{error,
{{{{case_clause,undefined},
[{rabbit_queue_index,add_segment_relseq_entry,3,[]},
{rabbit_queue_index,parse_segment_entries,3,[]},
{rabbit_queue_index,'-recover_journal/1-fun-0-',1,[]},
{lists,map,2,[{file,"lists.erl"},{line,1237}]},
{rabbit_queue_index,segment_map,2,[]},
{rabbit_queue_index,recover_journal,1,[]},
{rabbit_queue_index,scan_segments,3,[]},
{rabbit_queue_index,queue_index_walker_reader,2,[]}]},
{gen_server2,call,[<0.241.0>,out,infinity]}},
{child,undefined,msg_store_persistent,
{rabbit_msg_store,start_link,

更多…

linux下redis cluster部署

git clone https://github.com/antirez/redis.git
cd redis
make
make test
file ./src/redis-server
mkdir cluster-test
cd cluster-test
mkdir 7000 7001 7002 7003 7004 7005

#同样的方法,在7001,7002,7003,7004,7005 里创建 redis.conf. 记住redis.conf 里面的port 需要分别改成 7001,7002,7003,7004,7005
cat > 7000/redis.conf <
#同样的方法,在7001,7002,7003,7004,7005 里创建 redis.conf. 记住redis.conf 里面的port 需要分别改成 7001,7002,7003,7004,7005
#备注: 如果我们使用replicas=1的话, 需要最少6个节点。即7000-7005 6个nodes。 其中最少需要3个master 节点。如果replicas=0 的话, 只需要3个节点是可以部署的。
#开启6个tab ssh 登录。 分别 cd 7000,7001,7002,7003,7004,7005
更多...

个别服务器出现git clone提示需要密码或者无法连接的问题

因为代码仓库地址变更, 昨天在更新git remote url时, 发现一个诡异的问题: 在部分服务器上进行下拉代码时提示如下错误(更新remote url之后)。

我重新执行克隆操作也是同样的错误:
git clone ssh://[email protected]/ibg/ibg_test.git (git clone [email protected]:ibg/ibg_test.git “[email protected]:ibg/ibg_test.git” == “ssh://[email protected]/ibg/ibg_test.git” ) ,在某些机器上可以正确拉取到代码,某些机器上拉取时提示
Initialized empty Git repository in /home/test/.ssh/ibg_test/.git/
[email protected]'s password:

更多…

使用moco搭建mockserver

下载 moco-runner-standalone
http://central.maven.org/maven2/com/github/dreamhead/moco-runner/0.12.0/moco-runner-0.12.0-standalone.jar

如果我们想实现如下的情况,

1. 请求http://localhost:port/we/bobemockedapi 时 我们自定义mock 返回数据

2. 如果请求http://localhost:port/we/* (* 除了 /we/bobemockedapi ) 其他的均自动反向代理到 另外一个服务器 http://realserver/

3. 如果没有匹配到任何规则, 则走默认的mock数据返回。 返回 {“mockserver”:”this is the default response by mock server”}
更多…

关于启动服务端口被占用但是查看该端口并没有被监听的情况

今天重新启动mysql服务的时候,提示3306端口被占用. 通过如下命令查看,发现并没有程序占用3306端口.

netstat -lnp | grep 3306  #通过netstat 命令查看

lsof -i:3306  通过lsof命令也可以查看使用3306 端口的句柄

但是都没有发现什么有用线索, 但是实际上重启mysql就是提示端口被占用

于是乎, 放大查找范围.  netstat -anp | grep 3306.  发现有一个tcp链接, 是established状态.  从本机的某个端口链接到了本地的3306端口.

更多…

rabbitmq服务安装及常用命令

 sudo rpm -ivh rabbitmq-server-3.5.6-1.noarch.rpm   //安装
 sudo service rabbitmq-server restart
 sudo rabbitmqctl add_user user "pass"// 添加用户
 sudo rabbitmqctl delete_user  passwordless-user  //删除用户
 sudo rabbitmqctl add_vhost /test   // 添加 vhost
 sudo rabbitmqctl list_vhosts  // 列出vhosts
 sudo rabbitmqctl list_permissions -p /test     // 查看vhost的权限
 sudo rabbitmqctl set_permissions -p /test user ".*" ".*" ".*"   // 设置权限 
 sudo rabbitmqctl list_permissions -p /test  // 查看权限

 

springboot 健康检查 MessagingException: 501 Syntax: HELO hostname

springboot 健康检查 MessagingException: 501 Syntax: HELO hostname

Caused by: javax.mail.MessagingException: 501 Syntax: HELO hostname
at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1363)
at com.sun.mail.smtp.SMTPTransport.helo(SMTPTransport.java:838)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:375)
at javax.mail.Service.connect(Service.java:248)

 

原因,该机器的dns服务地址未配置正确。 例如本服务器的hostname为 service,但是service 不能正确解析。

1.  可以直接修改 /etc/hosts  将本服务器的hostname 映射成为 127.0.0.1

或者

2. 可以springboot 添加配置项直接设置为本机ip地址。

mail.smtp.localhost = 127.0.0.1