Android-Charts技术交流QQ群现已开通,欢迎加入。群号:170987350

[Linux]Java获取本机网卡IP地址

December 1st, 2016 No comments

应用程序服务器由Windows环境整体迁移到Linux环境,出现了不能获取本机IP地址的问题
原因是下面一段JAVA代码在Linux下直接返回127.0.0.1。Windows下有效的InetAddress貌似在linux下不起作用。

1
2
3
4
5
6
7
8
9
10
11
12
public static String getLocalIP() {
    String ip = "";
        try {
            InetAddress address = InetAddress.getLocalHost();
            if(address != null) {
                ip = address.getHostAddress();
            }
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    return ip;
}

原因在于Java使用的JNI代码调用的是Linux中的gethostname内核函数
这个函数在Linux主机没有绑定IP的情况下根据Host文件定义返回默认的localhost或者127.0.0.1。
Read more…

Categories: 系统管理, 零敲碎打 Tags: , ,

JSch连接SSH问题Exception:Algorithm negotiation fail

August 16th, 2016 No comments

使用Jenkins配置完远程SSH服务器,发生无法连接问题,查看Log后找到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[SSH] Exception:Algorithm negotiation fail
    com.jcraft.jsch.JSchException: Algorithm negotiation fail
    at com.jcraft.jsch.Session.receive_kexinit(Session.java:520)
    at com.jcraft.jsch.Session.connect(Session.java:286)
    at com.jcraft.jsch.Session.connect(Session.java:150)
    at org.jvnet.hudson.plugins.SSHSite.createSession(SSHSite.java:141)
    at org.jvnet.hudson.plugins.SSHSite.executeCommand(SSHSite.java:151)
    at org.jvnet.hudson.plugins.SSHBuildWrapper.executePreBuildScript(SSHBuildWrapper.java:75)
    at org.jvnet.hudson.plugins.SSHBuildWrapper.setUp(SSHBuildWrapper.java:59)
    at hudson.model.Build$BuildExecution.doRun(Build.java:154)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:533)
    at hudson.model.Run.execute(Run.java:1754)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:89)
    at hudson.model.Executor.run(Executor.java:240)
Finished: FAILURE

Read more…

Categories: 系统管理 Tags: , ,

Nginx配置HTTPS支持CHACHA20_POLY1305

August 16th, 2016 No comments

Nginx打开CHACHA20_POLY1305支持需要替换Nginx的OpenSSL库为BoringSSLLibreSSL

具体实现替换方法请参考

Nginx替换OpenSSLLibreSSL 请参考
https://www.lidaren.com/archives/1702

Nginx替换OpenSSL为BoringSSL 请参考
https://www.lidaren.com/archives/1705

修改nginx.conf让nginx支持CHACHA20加密算法即可
这里增加”EECDH+CHACHA20:EECDH+CHACHA20-draft:”

1
2
3
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
#BoringSSL 默认关闭SSLv3
ssl_protocols TLSv1 TLSv1.1TLSv1.2;

Read more…

Nginx替换OpenSSL为BoringSSL

August 16th, 2016 No comments

先科普
BoringSSL 是Google创建的 OpenSSL 分支,但使用BoringSSL的代码不能保证API或ABI的稳定性,所以谷歌会继续向 OpenSSL递交bug修正,继续资助Core Infrastructure Initiative和OpenBSD基金会。
谷歌使用了超过70个OpenSSL补丁,部分被接受合并到了OpenSSL主库,但大部分没有。随着AndroidChrome和其它项目开始需要这些补丁的子集,事情日益变得复杂,要保证所有补丁在不同代码库正常工作需要太多精力。所以他们决定创建OpenSSL分支。

简单总结一下BoringSSL的优缺点
优点:兼容OpenSSL,修正了许多OpenSSL的BUG,OpenSSL改不了的BUG也被BoringSSL改了。
缺点:BoringSSL只为TLS和HTTPS而生,部分OpenSSL开关默认是关闭的,其他用途的话还是建议OpenSSL。

Nginx替换OpenSSL为BoringSSL与替换为LibreSSL方法基本类似,手动编译会比较麻烦
编译之前需要进行代码的补丁修正,这里提供一个已经实现好的编译脚本供参考

github @ajhaydock
https://github.com/ajhaydock/BoringNginx

Read more…

Categories: 系统管理 Tags: , , , ,

Nginx替换OpenSSL为LibreSSL

August 16th, 2016 No comments

先科普
LibreSSLOpenSSL加密软件库的一个分支,为一个安全套接层(SSL)和传输层安全(TLS)协议的开源实现。在OpenSSL爆出心脏出血安全漏洞之后,一些OpenBSD开发者于2014年4月创立了LibreSSL,目标是重构OpenSSL的代码,以提供一个更安全的替代品。LibreSSL复刻自OpenSSL库的1.0.1g分支,它将遵循其他OpenBSD项目所使用的安全指导原则。

简单总结一下LibreSSL的优缺点
优点:兼容OpenSSL,代码简单,分支清晰,便于安装、使用和维护
缺点:不支持旧安全算法,部分加密算法效率不高。

安装编译环境

1
2
#安装编译环境
yum install -y gcc gcc-c++ pcre-devel openssl openssl-devel

创建工作目录,统一使用绝对路径

1
2
3
#创建工作目录,统一使用绝对路径
mkdir /work
cd /work

Read more…

Categories: 系统管理 Tags: , , ,

将SS的加密算法改为chacha20

August 15th, 2016 No comments

Shadowsocks更换加密算法后可以提高密钥加密和解密速度,同时可以规避GFW利用OpenSSL特性进行特征包跟踪的问题。

环境确认,安装编译工具

1
2
3
4
# Debian/Ubuntu
apt-get install build-essential
# CentOS
yum groupinstall "Development Tools"

下载、编译和安装libsodium1.0.11,支持chacha20

1
2
3
4
5
6
7
8
9
10
11
# 下载libsodium
 
wget https://github.com/jedisct1/libsodium/releases/download/1.0.11/libsodium-1.0.11.tar.gz
tar xvf libsodium-1.0.11.tar.gz
 
# 编译&安装
cd libsodium-1.0.11
./configure && make && make install
 
# 更新动态库
ldconfig

Read more…

Categories: 零敲碎打 Tags: ,

[Evidence] Please stop crawling and indexing my website 

August 10th, 2016 No comments

Hello there,

Thanks for your attention on my mail, Something very important needs to let you know.
First, tuicool.com a very useful tool for users to subscribe what they really want, Congrats for the work!

I’m trying to analyze the accesslogs of my blog (https://www.lidaren.com), but i get something strange,
there are too many anonymous spider/crawler accessing, and IPs seems like from similar source hosts.
By tracing those IPs,I found that some of those IPs probably came from your spider/crawler.

And, I found some post contents of my blog were indexed by tuicool.com and can be directly searched out
via Google, eg. http://www.tuicool.com/articles/UVRjmyN
Read more…

Categories: 零敲碎打 Tags: ,