Forwarded from Haruue | 春上ひつき
"中".encode("utf-8-sig").decode("gbk")
'锘夸腑'
任何人都可以自行搭建同时支持地域优化和无污染的 DNS 。
您只需要:
+ 一个 DNS 服务器软件 (比如可以跑在 Open WRT 上的 dnsmasq ,或者更加通用的 BIND 和 Unbound)
+ 一个您本地运营商提供的 DNS 地址
+ 一个无污染 DNS 地址(请勿让明文的 DNS 请求直接通过 GFW,例如在大陆使用 1.1.1.1 或者在海外使用 101.6.6.6 ,任何通过 GFW 的明文 DNS 请求都可能被篡改)
+ 一份适用于中国大陆的域名白名单列表,肥猫维护了一份 https://github.com/felixonmars/dnsmasq-china-list
然后配置的思路就像它的 README.md 里所说的:把这份白名单里的域名交给运营商 DNS 解析,其余域名交给无污染 DNS 解析即可。具体配置方法请直接参考项目的 README.md 。
这个方案也可以解决运营商 DNS 对 NXDOMAIN 的劫持,因为只有白名单里的域名会交给运营商解析。NXDOMAIN 的情况会交给无污染 DNS 解析。此项目还提供了一份 bogus-nxdomain 规则作为补充。
您只需要:
+ 一个 DNS 服务器软件 (比如可以跑在 Open WRT 上的 dnsmasq ,或者更加通用的 BIND 和 Unbound)
+ 一个您本地运营商提供的 DNS 地址
+ 一个无污染 DNS 地址(请勿让明文的 DNS 请求直接通过 GFW,例如在大陆使用 1.1.1.1 或者在海外使用 101.6.6.6 ,任何通过 GFW 的明文 DNS 请求都可能被篡改)
+ 一份适用于中国大陆的域名白名单列表,肥猫维护了一份 https://github.com/felixonmars/dnsmasq-china-list
然后配置的思路就像它的 README.md 里所说的:把这份白名单里的域名交给运营商 DNS 解析,其余域名交给无污染 DNS 解析即可。具体配置方法请直接参考项目的 README.md 。
这个方案也可以解决运营商 DNS 对 NXDOMAIN 的劫持,因为只有白名单里的域名会交给运营商解析。NXDOMAIN 的情况会交给无污染 DNS 解析。此项目还提供了一份 bogus-nxdomain 规则作为补充。
GitHub
GitHub - felixonmars/dnsmasq-china-list: Chinese-specific configuration to improve your favorite DNS server. Best partner for chnroutes.
Chinese-specific configuration to improve your favorite DNS server. Best partner for chnroutes. - felixonmars/dnsmasq-china-list
在服务器上搭建自己的在线 maven 仓库
实际上只需要符合一定的目录规则(和你的
1. 在你的 build.gradle 中,先定义
实际上只需要符合一定的目录规则(和你的
mavenLocal()
也就是 ~/.m2/repository/
一致)即可,这样就可以先发布到本地仓库,然后直接将本地仓库上传到服务器的 webroot ,完全不需要去装 nexus 那堆东西。1. 在你的 build.gradle 中,先定义
groupId
和 version
, artifactId
将和你的 module 的名字一致。group 'moe.haruue'2. 确保你载入了
version '1.2'
maven
插件,这将带来 :uploadArchives
taskapply plugin: 'maven'3. 在
build.gradle
末尾加上uploadArchives {4. 把上一步中指定的本地发布位置下面的所有文件同步到服务器上的 webroot ,例如用 scp ,我个人习惯 rsync 一把梭。
repositories {
mavenDeployer {
// 指定一个本地的发布位置
repository(url: uri('./.m2'))
}
}
}
tasks.whenTaskAdded {
if (it.name == 'jar') {
uploadArchives.dependsOn it
}
}
rsync -r ./.m2/ 10.24.0.1:/var/www/maven/5. 在需要使用的项目中,添加
repositories {然后你就可以在用
maven { url "http://你的服务器地址/" }
}
compile 'groupId:artifactId:version'
来依赖它了,其中 groupId
和 version
是你在库的 build.gradle
中定义的, artifactId
是你的 module 的名字,例如在上面的例子中,假设库的 module 名字是 library
,那么依赖就是 compile 'moe.haruue:library:1.2'
Forwarded from 神奇的笔记 (神楽坂 立音)
在 Docker 里运行的 glxgears .....
通过 -v /tmp/.X11-unix:/tmp/.X11-unix 将 X11 Socket 挂载到 docker 里....
设置 xauth 的 token
创建与 host 系统相同 uid 的用户,设置 DISPLAY 参数,然后启动...
感谢 @ClassicOldSong 和 @epoll_ctl
通过 -v /tmp/.X11-unix:/tmp/.X11-unix 将 X11 Socket 挂载到 docker 里....
设置 xauth 的 token
创建与 host 系统相同 uid 的用户,设置 DISPLAY 参数,然后启动...
感谢 @ClassicOldSong 和 @epoll_ctl
Forwarded from 神奇的笔记 (神楽坂 立音)
docker 挂载 X11 Socket 里
xauth 则通过在 host 系统里执行
在 host 中执行
在 host 中执行
安装 X11 (我是直接安装了 wine) 和
然后在 Docker 里
现在就可以运行你想运行的程序了
-v /tmp/.X11-unix:/tmp/.X11-unix
xauth 则通过在 host 系统里执行
xauth list
得到 Token在 host 中执行
id
得到 UID在 host 中执行
echo $DISPLAY
得到类似 :0
的参数安装 X11 (我是直接安装了 wine) 和
xauth
然后在 Docker 里
adduser -u UID username
创建用户,然后执行 su username
进入用户,然后执行 export DISPLAY=:0
touch .Xauthority
xauth add $DISPLAY . Token
Token 用之前 xauth list
中最后一个参数替换现在就可以运行你想运行的程序了
注意 bionic 封装的
https://twitter.com/HaruueIcymoon/status/1059365098265882624
gettid()
与直接使用系统调用的结果可能不一样。https://twitter.com/HaruueIcymoon/status/1059365098265882624
Twitter
春上氷月
我还说着 bionic 居然变好用了?还帮我封装了个 Glibc 里没有的函数。。。 #然后我就掉坑里了
使用 netctl 配置 PPPoE
如果你用来拨号的以太网接口(如 eth0 )不用来做别的用途,那么直接复制
如果你像我一样,以太网接口除了用来拨号之外,还需要通过 DHCP 获取一个内网 IP 地址来访问内网。那么你应该使用
https://github.com/joukewitteveen/netctl/issues/58#issuecomment-36461346
如果你用来拨号的以太网接口(如 eth0 )不用来做别的用途,那么直接复制
/etc/netctl/examples/pppoe
,填上用户名和密码就好。如果你像我一样,以太网接口除了用来拨号之外,还需要通过 DHCP 获取一个内网 IP 地址来访问内网。那么你应该使用
Connection=ppp
而不是 Connection=pppoe
,并且需要正确设置 Interface=ppp0
和 BindsToInterfaces=(eth0)
。详细参考 netctl.profile(5)
。https://github.com/joukewitteveen/netctl/issues/58#issuecomment-36461346
GitHub
Conflicting ethernet-static and pppoe · Issue #58 · joukewitteveen/netctl
I have enabled two profiles: bers@bers-server ~ $ cat /etc/netctl/lan Description='bers-home network' Interface=eth0 Connection=ethernet IP=static Address=('192.168.168.193/28') ber...