0%

接上一篇 斐讯 N1 -> Armbian 后, 我往上面丢了一些服务(Gitea, vlmcsd, Transmission 等). 玩了一阵后我就因为别的事情搁置了最开始的目的 - 跳板, 直到四月份回坑 Apex Legends 后才因为联通的外网想起这台小机器.

接下来就开始填坑吧emoji

选型

  • PPTP/L2TP/IPSEC/SSTP

这些就很烦,不怎么想搞

  • OpenVPN/Softether

其实我是想直接用 Softether 的, 毕竟服务端启动后就能用有 UI 的管理工具, 点点点就搞好了.

问题是我到现在都没找到 ARM64 的预编译文件(官方不支持此架构)…

  • WireGuard

新玩具 - 轻量/性能不差/IP 漫游/配置相对简单/未来会支持混淆

好了就你了, 开搞开搞

部署

下文中部分参数意义请查看下表

参数意义
server_private_key_value服务器私钥
server_public_key_value服务器公钥
client_private_key_value客户端私钥
client_public_key_value客户端公钥

安装

WireGuard 官网 安装对应系统的版本, 你也可以下源码自己编译, 有现成的我一般都不会自己编译(哈哈).

Armbian (Debian or Ubuntu) 为例:

阅读全文 »

起因

现在在宿舍用的是联通的网络(广州联通,50Mbps). 之所以在南方还选择联通的原因是想着在直连的情况下去日本等亚洲国家的速度会比电信好, 事实也的确是这样(非高峰时段 100ms 以内).

但是吧,不知道是联通特别关照我还是出国路由抽风, 针对国外 IP 的连接不定时会全部被阻断 (港澳台都断,妈个鸡), 几分钟后恢复正常. 我 IW4x(ID: YooooEX,来玩耍呀) 一个服务器都找不到, 这还能玩耍?

需求有了, 接下来就是要怎么解决的问题了.

想法

既然国外连接都会被阻断, 那就只能在国内弄个中转跳板了.
  • 加速器

pass poor

  • 国内VPS中转

现在深港/沪日的 IPLC 价格其实还好, NAT VPS 一个月能控制在 100 以内, 就是流量和带宽余量都很捉急, 而且就为了这个似乎有点浪费啊 poor

  • 家宽中转

家里的电信宽带办的时间也是挺久的, 所以拨号有外网 IP, 即使在升级过多次套餐后也依然如此(现为 200Mbps / 30Mbps uplink). 那不就可以玩耍了? 又不是没当过高 Ping 战士…

对于 NAT 网络, 2018年底三大运营商已经在很多地方配置和开放了 IPv6 路由, 这使得以往部署个人服务最大的门槛 - 公网IP 被消除了. 只要你的路由支持 IPv6 并且正确下发配置(我这边是无状态,使用DHCPv6-PD分配地址), 在路由后的设备都是可以获取到公网 IP 的.

不过随着 Ipv6 的普及, 越来越多未被正确配置隔离的设备会被直接暴露在公网上, 到时又是黑产丰收的季节了.

设备选择

阅读全文 »

先给WebView一个固定高度,在页面加载时重新设置高度

1
2
3
4
5
6
<com.yooooex.widget.CustomWebView
android:id="@+id/wv_custom"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginHorizontal="@dimen/d_10"
android:scrollbars="none" />
1
2
3
4
5
6
7
8
9
10
11
mWebView.setWebViewClient(new WebViewClient() {
...
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
ViewGroup.LayoutParams params = mWebView.getLayoutParams();
params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
mWebView.setLayoutParams(params);
}
...
}

你也可以先把 WebView GONE 掉,在页面加载完毕时显示

1
2
3
4
5
6
7
<com.yooooex.widget.CustomWebView
android:id="@+id/wv_custom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/d_10"
android:scrollbars="none"
android:visibility="gone"/>
1
2
3
4
5
6
7
8
9
mWebView.setWebViewClient(new WebViewClient() {
...
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
mWebView.setVisibility(View.VISIBLE);
}
...
}

起因

今天中午朋友找到我,说想要给自己的游戏针对国外做反向代理 (被老外喷卡,哈哈),那就做一个咯

准备挖坑

因为只需要转发请求,配置需求不高. 所以我就在 DediSERVE 注册了个账号,创了个 5欧 1G 内存,25G 硬盘的实例(AFF警告: 链接在此)

服务器使用 Debian 8, Server Hostname 填写的是要 代理的域名 (重点,后面就因为这个掉坑里了)

挖坑中

老规矩,自己动手丰衣足食

准备

工具

1
sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g-dev git

Nginx

1
2
3
wget -c https://nginx.org/download/nginx-1.11.13.tar.gz

tar zxf nginx-1.13.12.tar.gz

OpenSSL

1
2
3
4
5
wget -O openssl.tar.gz -c https://github.com/openssl/openssl/archive/OpenSSL_1_0_2k.tar.gz

tar zxf openssl.tar.gz

mv openssl-OpenSSL_1_0_2k/ openssl

编译

如果没指定安装位置的话,默认会安装到 /usr/local/nginx/

阅读全文 »

看到好用的就记下来,以后填坑用

UI 界面

BRVAH (BaseRecyclerViewAdapterHelper)

BRVAH

一个 RecyclerView.Adapter 框架,写得少干得多

  • Item 事件(点击, 长按, 子 Item 点击, 长按)
  • 列表加载动画
  • 添加 Header 和 Footer
  • 上下拉加载
  • 空数据布局
  • 树形 Item

指示器 - CircleIndicator

CircleIndicator 演示

当前页面指示器 Lite
CircleIndicator

指示器 - MagicIndicator

当前页面指示器 Advanced

阅读全文 »