diff --git a/README.md b/README.md index 4d94ea4..da7ae2e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ HyperApp 是一个基于 SSH 和 Docker 的自动化部署工具,开发者整理了超过几十个常见应用,将其整理到商店中,您只需要点击一下就会出现可视化的配置界面,然后可以一键安装到您的服务器上。部署应用就是这么简单! -HyperApp 还集成了 LetsEncrypt SSL 证书功能,几乎可以为全部应用自动生成 SSL 证书。 +HyperApp 还集成了 Let's Encrypt SSL 证书功能,几乎可以为全部应用自动生成 SSL 证书。 同时 HyperApp 可以帮助您随时查看服务器运行状态,以及通过SSH终端随时随地登录到服务器上进行操作。 @@ -14,12 +14,16 @@ HyperApp 还集成了 LetsEncrypt SSL 证书功能,几乎可以为全部应用 --- + + +--- + + ## 在线浏览 [www.hyperapp.fun](https://www.hyperapp.fun) - --- ### 本页目录 @@ -42,36 +46,36 @@ HyperApp 还集成了 LetsEncrypt SSL 证书功能,几乎可以为全部应用 注意,这里所说的支持是指自动安装docker支持的系统,如果你使用其它系统(如 FreeBSD, Gentoo等),你可以自己安装 docker,HyperApp 会自动检测 docker 是否安装,如果已经安装则使用已有的 docker。 * Docker 只支持64位系统,且内核版本 >= 3.10 -* Ubuntu 14,16 ✅ +* Ubuntu 14 ✅ +* Ubuntu 16 ✅ 👍 (推荐) * CentOS 7 ✅ * Debian 8 ✅ -* CentOS 6 ⚠️ (不支持,但你可以手动安装最新版的Docker) +* CentOS 6 ⚠️ (需要自己安装 Docker) +* Debian 7 ⚠️ (需要自己安装 Docker) * 不支持 OpenVZ ❌ 注:CentOS 6 也是支持的,但是有些厂商自带的内核版本较低导致不支持 Docker -推荐 Ubuntu 16.04 LTS - **为什么不支持 OpenVZ ?** -因为 OpenVZ 支持的内核版本太低,不支持 Docker 所以,HyperApp 不支持 OpenVZ 的主机。 +因为 OpenVZ 支持的内核版本太低,不支持 Docker ,所以HyperApp 不支持 OpenVZ 的主机。 --- ### 管理服务器 -![管理服务器截图](https://github.com/waylybaye/HyperApp-Guide/raw/master/images/manage-server.png "添加服务器") - 1. 打开服务器页面,在这里可以显示基本的服务器运行状态,您可以随时下拉刷新更新重新检查服务器状态 2. 添加服务器时您可以使用 root 账号登录也可以使用具有 sudo 权限的非 root 账号登录。如果您使用密码登录请填写密码,如果使用私钥登录密码可以留空。 * Name: 为您的服务器起个名字 * Host: 您服务器的公网IP或者域名 * Port: SSH的端口,一般是22 * User: 您登陆用的用户名 - * Password: 你的密码,如果使用密钥登录此处可以留空,请参考下面 -3. 如果您使用私钥登录,那么请将您的私钥复制到剪切板中(iCloud剪贴板同步或者使用其它同步App)然后点击 "Paste Privatekey from Clipboard" 从剪贴板中复制私钥,如果您的私钥是加密的那么请在在 Passphrase 中输入,否则留空。 关于密钥的更多信息请参考 [常见问题](#常见问题) + * Password: 您的密码,如果使用私钥登录此处可以留空,请参考下面 + -* Linode/Vultr/DigitalOcean 等厂商一般可以使用 root 账号和密码直接登录 -* 如果您使用 Google CloudEngine 或者 AWS EC2 等默认禁止 root 登录的账号,请查看下面的教程怎样配置私钥登录,然后重复上面的第3步骤在 HyperApp 中链接。 +#### 常见厂商 +* Linode/Vultr/DigitalOcean 等厂商一般可以使用 root 账号和密码直接登录; +* 搬瓦工的 root 密码和端口会在购买服务器后,通过邮箱发给你。 +* 如果您使用 Google Cloud Engine 或者 AWS EC2 等默认禁止 root 登录的账号,请查看下面的教程怎样配置私钥登录,然后重复上面的第3步骤在 HyperApp 中链接。 [查看添加服务器的新手教程](./zh/Add-Server.md) @@ -120,23 +124,23 @@ HyperApp 还集成了 LetsEncrypt SSL 证书功能,几乎可以为全部应用 **为什么部署成功了还是安装不上?** 1. 如果使用的是 GCE 或者 AWS ,那么您可以需要在它们的控制台中添加防火墙规则外部才能连接特定的端口。 -2. 您使用的Linux发行版可能默认开启了防火墙守护进程,比如 CentOS 的 FirewallD。请查阅相关的资料如何添加允许端口访问。 +2. 您使用的 Linux 发行版可能默认开启了防火墙守护进程,比如 CentOS 的 firewalld。请查阅相关的资料如何添加允许端口访问。 **为什么 GCE 连接不上?** -您可能被分配了一个已经被墙的IP,请使用下面的方法进行故障排除 +您可能被分配了一个已经被墙的 IP,请使用下面的方法进行故障排除 **怎样检测 IP 能否访问,或者我部署的应用能否访问?** -1. 检测 IP 最简单的是运行 `ping IP` 看看是否可以连通,但是 GCE 和 AWS 的默认防火墙规则屏蔽了 ICMP,所以这个方法可能不适用。 -2. 基本所有的厂商都会允许外部连接 22端口(SSH远程登录)所以您可以简单的 `ssh IP` 一下看看是否可以连通,如果报错认证失败说明是可以连通的 -3. 如果您要检测其它端口(比如SS的)那么您可以运行 `telnet IP PORT` 来查看远程端口是否开启,如果可以访问则远程服务没问题。如果不可以则可以登录服务器,运行 `lsof -i :端口` 来查看是否有进程正在监听该端口,如果有说明是防火墙屏蔽了端口访问,如果没有说明部署失败。 +1. 检测 IP 最简单的是运行 `ping ` 看看是否可以连通,但是 GCE 和 AWS 的默认防火墙规则屏蔽了 [ICMP](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol),所以这个方法可能不适用。 +2. 基本所有的厂商都会允许外部连接 22 端口(SSH远程登录开放的端口)所以您可以简单的 `ssh username@IP` 一下看看是否可以连通,如果报错认证失败说明是可以连通的 +3. 如果您要检测其它端口(比如SS的)那么您可以运行 `telnet IP ` 来查看远程端口是否开启,如果可以访问则远程服务没问题。如果不可以则可以登录服务器,运行 `lsof -i :端口` 来查看是否有进程正在监听该端口,如果有说明是防火墙屏蔽了端口访问,如果没有说明部署失败。 **为什么我在机器上能连接但在App上用同样的参数连接不了?** -你手机是否开了VPN或者 Surge,尝试断开 VPN/Surge 后试试。 -有些服务商可能会屏蔽另外服务商的某些链接,当你使用VPN绕道连接时可能会出现此问题。 +您的手机是否开了 VPN 或者 Surge,尝试断开 VPN/Surge 后试试。 +有些服务商可能会屏蔽另外服务商的某些链接,当你使用 VPN 绕道连接时可能会出现此问题。 -**HyperApp 会在我的服务器/路由器上运行哪些命令?** -[HyperApp 运行的命令](./commands.md) +**如何在服务器上卸载 HyperApp?** +HyperApp 不会在您的服务器上安装任何软件,所以不需要卸载 \ No newline at end of file diff --git a/commands.md b/commands.md deleted file mode 100644 index 5119851..0000000 --- a/commands.md +++ /dev/null @@ -1,31 +0,0 @@ -# HyperApp commands - - -### What commands does HyperApp run on my Linux server? - -```bash -# CPU -cat /proc/loadavg | awk '{print $1}' - -# CPU count -getconf _NPROCESSORS_ONLN || grep -c ^processor /proc/cpuinfo - -# Memory -free | grep Mem | awk '{print $2,$3}' - -# Disk -df -h | awk '$NF == "/" {print $2,$(NF-1),$NF}' - -# Uptime -cat /proc/uptime - -# Network -cat /sys/class/net/`route -n | awk '$1 == "0.0.0.0" {print $8}' | head`/statistics/tx_bytes - -# Docker status -[sudo] docker ps -a - -# Docker Stats -[sudo] docker stats --format '{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}' --no-stream -``` - diff --git a/zh/images/Domain-1.jpg b/images/Domain-1.jpg similarity index 100% rename from zh/images/Domain-1.jpg rename to images/Domain-1.jpg diff --git a/zh/images/Domain-2.jpg b/images/Domain-2.jpg similarity index 100% rename from zh/images/Domain-2.jpg rename to images/Domain-2.jpg diff --git a/zh/images/Domain-3.jpg b/images/Domain-3.jpg similarity index 100% rename from zh/images/Domain-3.jpg rename to images/Domain-3.jpg diff --git a/zh/images/Domain-4.jpg b/images/Domain-4.jpg similarity index 100% rename from zh/images/Domain-4.jpg rename to images/Domain-4.jpg diff --git a/zh/images/Domain-5.jpg b/images/Domain-5.jpg similarity index 100% rename from zh/images/Domain-5.jpg rename to images/Domain-5.jpg diff --git a/zh/images/bt-1.jpg b/images/bt-1.jpg similarity index 100% rename from zh/images/bt-1.jpg rename to images/bt-1.jpg diff --git a/zh/images/bt-2.jpg b/images/bt-2.jpg similarity index 100% rename from zh/images/bt-2.jpg rename to images/bt-2.jpg diff --git a/zh/images/bt-3.jpg b/images/bt-3.jpg similarity index 100% rename from zh/images/bt-3.jpg rename to images/bt-3.jpg diff --git a/zh/images/bt-4.jpg b/images/bt-4.jpg similarity index 100% rename from zh/images/bt-4.jpg rename to images/bt-4.jpg diff --git a/zh/images/certbot.png b/images/certbot.png similarity index 100% rename from zh/images/certbot.png rename to images/certbot.png diff --git a/zh/advanced/images/dockerimage-1.png b/images/dockerimage-1.png similarity index 100% rename from zh/advanced/images/dockerimage-1.png rename to images/dockerimage-1.png diff --git a/zh/advanced/images/dockerimage-v2ray-1.png b/images/dockerimage-v2ray-1.png similarity index 100% rename from zh/advanced/images/dockerimage-v2ray-1.png rename to images/dockerimage-v2ray-1.png diff --git a/zh/proxy/images/gce/1-free-tier.png b/images/gce/1-free-tier.png similarity index 100% rename from zh/proxy/images/gce/1-free-tier.png rename to images/gce/1-free-tier.png diff --git a/zh/proxy/images/gce/1-intro.png b/images/gce/1-intro.png similarity index 100% rename from zh/proxy/images/gce/1-intro.png rename to images/gce/1-intro.png diff --git a/zh/proxy/images/gce/2-create-vm-firewall.png b/images/gce/2-create-vm-firewall.png similarity index 100% rename from zh/proxy/images/gce/2-create-vm-firewall.png rename to images/gce/2-create-vm-firewall.png diff --git a/zh/proxy/images/gce/2-create-vm.png b/images/gce/2-create-vm.png similarity index 100% rename from zh/proxy/images/gce/2-create-vm.png rename to images/gce/2-create-vm.png diff --git a/zh/proxy/images/gce/2-vms-nav.png b/images/gce/2-vms-nav.png similarity index 100% rename from zh/proxy/images/gce/2-vms-nav.png rename to images/gce/2-vms-nav.png diff --git a/zh/proxy/images/gce/2-vms.png b/images/gce/2-vms.png similarity index 100% rename from zh/proxy/images/gce/2-vms.png rename to images/gce/2-vms.png diff --git a/zh/proxy/images/gce/3-auto-config-done.png b/images/gce/3-auto-config-done.png similarity index 100% rename from zh/proxy/images/gce/3-auto-config-done.png rename to images/gce/3-auto-config-done.png diff --git a/zh/proxy/images/gce/3-auto-config-start.png b/images/gce/3-auto-config-start.png similarity index 100% rename from zh/proxy/images/gce/3-auto-config-start.png rename to images/gce/3-auto-config-start.png diff --git a/zh/proxy/images/gce/3-servers.png b/images/gce/3-servers.png similarity index 100% rename from zh/proxy/images/gce/3-servers.png rename to images/gce/3-servers.png diff --git a/zh/proxy/images/gce/3-vm-ssh.jpg b/images/gce/3-vm-ssh.jpg similarity index 100% rename from zh/proxy/images/gce/3-vm-ssh.jpg rename to images/gce/3-vm-ssh.jpg diff --git a/zh/proxy/images/gce/4-bbr.png b/images/gce/4-bbr.png similarity index 100% rename from zh/proxy/images/gce/4-bbr.png rename to images/gce/4-bbr.png diff --git a/zh/proxy/images/gce/4-config-app.png b/images/gce/4-config-app.png similarity index 100% rename from zh/proxy/images/gce/4-config-app.png rename to images/gce/4-config-app.png diff --git a/zh/proxy/images/gce/4-create-app.png b/images/gce/4-create-app.png similarity index 100% rename from zh/proxy/images/gce/4-create-app.png rename to images/gce/4-create-app.png diff --git a/zh/proxy/images/gce/4-install-app.png b/images/gce/4-install-app.png similarity index 100% rename from zh/proxy/images/gce/4-install-app.png rename to images/gce/4-install-app.png diff --git a/zh/images/huginn-1.jpg b/images/huginn-1.jpg similarity index 100% rename from zh/images/huginn-1.jpg rename to images/huginn-1.jpg diff --git a/zh/images/huginn-2.jpg b/images/huginn-2.jpg similarity index 100% rename from zh/images/huginn-2.jpg rename to images/huginn-2.jpg diff --git a/zh/images/huginn-3.jpg b/images/huginn-3.jpg similarity index 100% rename from zh/images/huginn-3.jpg rename to images/huginn-3.jpg diff --git a/zh/images/hugo-1.png b/images/hugo-1.png similarity index 100% rename from zh/images/hugo-1.png rename to images/hugo-1.png diff --git a/zh/images/hugo-2.png b/images/hugo-2.png similarity index 100% rename from zh/images/hugo-2.png rename to images/hugo-2.png diff --git a/zh/images/hugo-3.png b/images/hugo-3.png similarity index 100% rename from zh/images/hugo-3.png rename to images/hugo-3.png diff --git a/zh/images/hugo-4.png b/images/hugo-4.png similarity index 100% rename from zh/images/hugo-4.png rename to images/hugo-4.png diff --git a/zh/images/kcptun-1.png b/images/kcptun-1.png similarity index 100% rename from zh/images/kcptun-1.png rename to images/kcptun-1.png diff --git a/zh/images/kcptun-2.JPG b/images/kcptun-2.JPG similarity index 100% rename from zh/images/kcptun-2.JPG rename to images/kcptun-2.JPG diff --git a/zh/images/kcptun.jpeg b/images/kcptun.jpeg similarity index 100% rename from zh/images/kcptun.jpeg rename to images/kcptun.jpeg diff --git a/zh/images/love-bundle.jpeg b/images/love-bundle.jpeg similarity index 100% rename from zh/images/love-bundle.jpeg rename to images/love-bundle.jpeg diff --git a/zh/images/monitor-0.jpg b/images/monitor-0.jpg similarity index 100% rename from zh/images/monitor-0.jpg rename to images/monitor-0.jpg diff --git a/zh/images/monitor-1.jpg b/images/monitor-1.jpg similarity index 100% rename from zh/images/monitor-1.jpg rename to images/monitor-1.jpg diff --git a/zh/images/monitor-2.jpg b/images/monitor-2.jpg similarity index 100% rename from zh/images/monitor-2.jpg rename to images/monitor-2.jpg diff --git a/zh/images/monitor-3.jpg b/images/monitor-3.jpg similarity index 100% rename from zh/images/monitor-3.jpg rename to images/monitor-3.jpg diff --git a/zh/images/monitor-4.jpg b/images/monitor-4.jpg similarity index 100% rename from zh/images/monitor-4.jpg rename to images/monitor-4.jpg diff --git a/zh/images/monitor-5.jpg b/images/monitor-5.jpg similarity index 100% rename from zh/images/monitor-5.jpg rename to images/monitor-5.jpg diff --git a/zh/images/nextcloud-1.PNG b/images/nextcloud-1.PNG similarity index 100% rename from zh/images/nextcloud-1.PNG rename to images/nextcloud-1.PNG diff --git a/zh/images/nextcloud-2.PNG b/images/nextcloud-2.PNG similarity index 100% rename from zh/images/nextcloud-2.PNG rename to images/nextcloud-2.PNG diff --git a/zh/images/nextcloud-3.PNG b/images/nextcloud-3.PNG similarity index 100% rename from zh/images/nextcloud-3.PNG rename to images/nextcloud-3.PNG diff --git a/zh/images/nextcloud-4.PNG b/images/nextcloud-4.PNG similarity index 100% rename from zh/images/nextcloud-4.PNG rename to images/nextcloud-4.PNG diff --git a/zh/images/nextcloud-5.PNG b/images/nextcloud-5.PNG similarity index 100% rename from zh/images/nextcloud-5.PNG rename to images/nextcloud-5.PNG diff --git a/zh/images/nextcloud-6.PNG b/images/nextcloud-6.PNG similarity index 100% rename from zh/images/nextcloud-6.PNG rename to images/nextcloud-6.PNG diff --git a/zh/images/nextcloud-7.PNG b/images/nextcloud-7.PNG similarity index 100% rename from zh/images/nextcloud-7.PNG rename to images/nextcloud-7.PNG diff --git a/zh/images/nextcloud-8.PNG b/images/nextcloud-8.PNG similarity index 100% rename from zh/images/nextcloud-8.PNG rename to images/nextcloud-8.PNG diff --git a/zh/images/nextcloud-9.PNG b/images/nextcloud-9.PNG similarity index 100% rename from zh/images/nextcloud-9.PNG rename to images/nextcloud-9.PNG diff --git a/zh/images/nghttpx.jpg b/images/nghttpx.jpg similarity index 100% rename from zh/images/nghttpx.jpg rename to images/nghttpx.jpg diff --git a/zh/images/nodebb-1.png b/images/nodebb-1.png similarity index 100% rename from zh/images/nodebb-1.png rename to images/nodebb-1.png diff --git a/zh/images/nodebb-2.png b/images/nodebb-2.png similarity index 100% rename from zh/images/nodebb-2.png rename to images/nodebb-2.png diff --git a/zh/images/nodebb-3.png b/images/nodebb-3.png similarity index 100% rename from zh/images/nodebb-3.png rename to images/nodebb-3.png diff --git a/zh/images/nodebb-4.png b/images/nodebb-4.png similarity index 100% rename from zh/images/nodebb-4.png rename to images/nodebb-4.png diff --git a/zh/images/ocserv.jpg b/images/ocserv.jpg similarity index 100% rename from zh/images/ocserv.jpg rename to images/ocserv.jpg diff --git a/zh/images/panel-1.jpg b/images/panel-1.jpg similarity index 100% rename from zh/images/panel-1.jpg rename to images/panel-1.jpg diff --git a/zh/images/panel-2.jpg b/images/panel-2.jpg similarity index 100% rename from zh/images/panel-2.jpg rename to images/panel-2.jpg diff --git a/zh/images/panel-3.jpg b/images/panel-3.jpg similarity index 100% rename from zh/images/panel-3.jpg rename to images/panel-3.jpg diff --git a/zh/images/panel-4.jpg b/images/panel-4.jpg similarity index 100% rename from zh/images/panel-4.jpg rename to images/panel-4.jpg diff --git a/zh/images/panel-5.jpg b/images/panel-5.jpg similarity index 100% rename from zh/images/panel-5.jpg rename to images/panel-5.jpg diff --git a/zh/images/pipesocks-1.jpg b/images/pipesocks-1.jpg similarity index 100% rename from zh/images/pipesocks-1.jpg rename to images/pipesocks-1.jpg diff --git a/zh/images/pipesocks-2.jpg b/images/pipesocks-2.jpg similarity index 100% rename from zh/images/pipesocks-2.jpg rename to images/pipesocks-2.jpg diff --git a/zh/images/pipesocks-3.jpg b/images/pipesocks-3.jpg similarity index 100% rename from zh/images/pipesocks-3.jpg rename to images/pipesocks-3.jpg diff --git a/zh/images/pydio-1.jpg b/images/pydio-1.jpg similarity index 100% rename from zh/images/pydio-1.jpg rename to images/pydio-1.jpg diff --git a/zh/images/pydio-2.jpg b/images/pydio-2.jpg similarity index 100% rename from zh/images/pydio-2.jpg rename to images/pydio-2.jpg diff --git a/zh/images/pydio-3.jpg b/images/pydio-3.jpg similarity index 100% rename from zh/images/pydio-3.jpg rename to images/pydio-3.jpg diff --git a/zh/images/pydio-4.jpg b/images/pydio-4.jpg similarity index 100% rename from zh/images/pydio-4.jpg rename to images/pydio-4.jpg diff --git a/zh/images/pydio-5.jpg b/images/pydio-5.jpg similarity index 100% rename from zh/images/pydio-5.jpg rename to images/pydio-5.jpg diff --git a/zh/images/rocket-chat-1.png b/images/rocket-chat-1.png similarity index 100% rename from zh/images/rocket-chat-1.png rename to images/rocket-chat-1.png diff --git a/zh/images/rocket-chat-2.PNG b/images/rocket-chat-2.PNG similarity index 100% rename from zh/images/rocket-chat-2.PNG rename to images/rocket-chat-2.PNG diff --git a/zh/images/rocket-chat-2.jpg b/images/rocket-chat-2.jpg similarity index 100% rename from zh/images/rocket-chat-2.jpg rename to images/rocket-chat-2.jpg diff --git a/zh/images/rocket-chat-3.jpg b/images/rocket-chat-3.jpg similarity index 100% rename from zh/images/rocket-chat-3.jpg rename to images/rocket-chat-3.jpg diff --git a/images/speedtest-1.png b/images/speedtest-1.png new file mode 100644 index 0000000..0d0266c Binary files /dev/null and b/images/speedtest-1.png differ diff --git a/zh/images/squid.jpg b/images/squid.jpg similarity index 100% rename from zh/images/squid.jpg rename to images/squid.jpg diff --git a/zh/images/sspanel.jpeg b/images/sspanel.jpeg similarity index 100% rename from zh/images/sspanel.jpeg rename to images/sspanel.jpeg diff --git a/zh/images/ssr.jpg b/images/ssr.jpg similarity index 100% rename from zh/images/ssr.jpg rename to images/ssr.jpg diff --git a/zh/images/syncthing-1.png b/images/syncthing-1.png similarity index 100% rename from zh/images/syncthing-1.png rename to images/syncthing-1.png diff --git a/zh/images/syncthing-2.png b/images/syncthing-2.png similarity index 100% rename from zh/images/syncthing-2.png rename to images/syncthing-2.png diff --git a/zh/images/syncthing-3.png b/images/syncthing-3.png similarity index 100% rename from zh/images/syncthing-3.png rename to images/syncthing-3.png diff --git a/zh/images/telegram-1.jpg b/images/telegram-1.jpg similarity index 100% rename from zh/images/telegram-1.jpg rename to images/telegram-1.jpg diff --git a/zh/images/telegram-2.jpg b/images/telegram-2.jpg similarity index 100% rename from zh/images/telegram-2.jpg rename to images/telegram-2.jpg diff --git a/zh/images/telegram-3.jpg b/images/telegram-3.jpg similarity index 100% rename from zh/images/telegram-3.jpg rename to images/telegram-3.jpg diff --git a/zh/images/telegram-4.jpg b/images/telegram-4.jpg similarity index 100% rename from zh/images/telegram-4.jpg rename to images/telegram-4.jpg diff --git a/zh/images/telegram-5.jpg b/images/telegram-5.jpg similarity index 100% rename from zh/images/telegram-5.jpg rename to images/telegram-5.jpg diff --git a/zh/images/telegram-6.jpg b/images/telegram-6.jpg similarity index 100% rename from zh/images/telegram-6.jpg rename to images/telegram-6.jpg diff --git a/zh/images/v2ray-0.jpg b/images/v2ray-0.jpg similarity index 100% rename from zh/images/v2ray-0.jpg rename to images/v2ray-0.jpg diff --git a/zh/images/v2ray-1.jpg b/images/v2ray-1.jpg similarity index 100% rename from zh/images/v2ray-1.jpg rename to images/v2ray-1.jpg diff --git a/zh/images/v2ray-2.jpg b/images/v2ray-2.jpg similarity index 100% rename from zh/images/v2ray-2.jpg rename to images/v2ray-2.jpg diff --git a/zh/images/v2ray-client-1.png b/images/v2ray-client-1.png similarity index 100% rename from zh/images/v2ray-client-1.png rename to images/v2ray-client-1.png diff --git a/zh/images/v2ray-client-2.png b/images/v2ray-client-2.png similarity index 100% rename from zh/images/v2ray-client-2.png rename to images/v2ray-client-2.png diff --git a/zh/images/v2ray-client-3.png b/images/v2ray-client-3.png similarity index 100% rename from zh/images/v2ray-client-3.png rename to images/v2ray-client-3.png diff --git a/zh/images/v2ray-client-4.png b/images/v2ray-client-4.png similarity index 100% rename from zh/images/v2ray-client-4.png rename to images/v2ray-client-4.png diff --git a/zh/images/v2ray-client-5.png b/images/v2ray-client-5.png similarity index 100% rename from zh/images/v2ray-client-5.png rename to images/v2ray-client-5.png diff --git a/zh/images/v2ray-client-6.png b/images/v2ray-client-6.png similarity index 100% rename from zh/images/v2ray-client-6.png rename to images/v2ray-client-6.png diff --git a/zh/images/v2ray.jpg b/images/v2ray.jpg similarity index 100% rename from zh/images/v2ray.jpg rename to images/v2ray.jpg diff --git a/zh/images/v2rayx-server.png b/images/v2rayx-server.png similarity index 100% rename from zh/images/v2rayx-server.png rename to images/v2rayx-server.png diff --git a/zh/images/v2rayx-tcp.png b/images/v2rayx-tcp.png similarity index 100% rename from zh/images/v2rayx-tcp.png rename to images/v2rayx-tcp.png diff --git a/zh/images/v2rayx-tls.png b/images/v2rayx-tls.png similarity index 100% rename from zh/images/v2rayx-tls.png rename to images/v2rayx-tls.png diff --git a/zh/images/wordpress-1.jpg b/images/wordpress-1.jpg similarity index 100% rename from zh/images/wordpress-1.jpg rename to images/wordpress-1.jpg diff --git a/zh/images/wordpress-2.jpg b/images/wordpress-2.jpg similarity index 100% rename from zh/images/wordpress-2.jpg rename to images/wordpress-2.jpg diff --git a/zh/images/wordpress-3.jpg b/images/wordpress-3.jpg similarity index 100% rename from zh/images/wordpress-3.jpg rename to images/wordpress-3.jpg diff --git a/zh/2048.md b/zh/2048.md deleted file mode 100644 index 937b37d..0000000 --- a/zh/2048.md +++ /dev/null @@ -1,55 +0,0 @@ -# 搭建个人专享2048在线小游戏 - -> 人总有那么些奇奇怪怪的时刻.觉得无聊.但又什么都不想干.玩游戏都不想下载--那就来一盘2048把:) - -## 本文原文地址: https://vinga.fun/2048 - -## 更新记录 - -* 2017.09.10: 弄了个域名长期部署2048打发时间😂😂 https://2048.ga - -## 准备 - -* **Hyperapp** -* **一个已经解析正确的域名(ping验证)** -* **耐心.仔细.认真** - -#### 到Hyperapp进行设置 - -1. **转到商店页面.找到Docker Image然后选择服务器并且保存进入配置界面** -2. **请完全按照下图配置进行填写!** - - -| 应用设置名称 | 内容 | -| :-----------: | :------------------: | -| Image | fanvinga/docker-2048 | -| Options | | -| Command | | -| Args | | -| **Nginx设置名称** | **内容** | -| 域名 | 你要给2048的域名 | -| 应用端口 | | -| Https | 将http重定向到https | -| 域名 | 你要给2048的域名(自动填写) | -| 邮箱 | 域名所对应的邮箱 | - -* 没有填写的设置即为留空 -* **保存并且进行安装.请确保这时候Nginx Proxy以及Nginx SSL Support正常默认安装并且启动了** -## 大功告成 - -* **这时候去访问你的域名吧٩(˃̶͈̀௰˂̶͈́)و** - -## 来看看我的呗! - -** https://2048.ga - -## 吐槽一下 -* **自从做了这个.真·没事就上去玩玩🤦‍♂️同一浏览器登录还能保存记录🌝来啊!快活啊!** - -## 写在最后 - -* 写了这么久.如果能有所收获那就是我最大的荣幸了:) -* 如果可以的话.可以关注一下 https://vinga.fun 这是我的私人博客地址:) -* 如有问题可发邮件至我邮箱fanalcest@gmail.com联系或telegram@fanvinga - -banner diff --git a/zh/Bt.md b/zh/Bt.md deleted file mode 100644 index 34b4b3c..0000000 --- a/zh/Bt.md +++ /dev/null @@ -1,49 +0,0 @@ -# VPS上搭建高速BT下载服务 - -> **很多人觉得自己的VPS空着也是空着不如拿来发挥点余热.于是今天就给带来一篇在VPS上跑起来轻量化BT离线工具Cloudtorrent的教程.** - - -* **本文原文链接https://vinga.fun/bt** - - -## 准备工作 - -* **运行了Hyperapp的ios设备** -* **一台VPS** - - - -## Hyperapp配置 - -* **如果追求简单.直接通过ip+端口的形式就能访问的话参考如下配置**![bt-1](./images/bt-1.jpg) -* **如果追求可以通过域名来访问的话.参考如下配置**![bt-2](./images/bt-2.jpg) -* **注意方式一中端口可以自定义.** - - - -## 服务器配置 - -1. **我们现在登录ip:端口或者你给cloudtorrent绑定的域名.就可以来到这样一个界面.** - -![bt-3](./images/bt-3.jpg) - -2. **先不要着急添加磁链或者BT开始下载.设置之前是没有速度的.先设置这个.![bt-4](./images/bt-4.jpg)** -3. **save了之后基本上就可以了.看不懂的选项就不去动他.** -4. **对于需要更高速度更高稳定性表现的.请自行添加tracker list.这里给一个连接** - - * `https://github.com/ngosang/trackerslist/` - - - - -## 写在最后 - -* **写了这么久.如果能有所收获那就是我最大的荣幸了:)** -* **如果可以的话.可以关注一下 https://vinga.fun 这是我的私人博客地址:)** -* **如有问题可发邮件至我邮箱联系或telegram@fanvinga** - - - - - - diff --git a/zh/Add-Server.md b/zh/Config/Add-Server.md similarity index 81% rename from zh/Add-Server.md rename to zh/Config/Add-Server.md index 58e2d60..595fd91 100644 --- a/zh/Add-Server.md +++ b/zh/Config/Add-Server.md @@ -10,11 +10,11 @@ * Host: 您服务器的公网IP或者域名 * Port: SSH的端口,一般是22 * User: 您登陆用的用户名 - * Password: 你的密码,如果使用密钥登录此处可以留空,请参考下面 -3. 如果您使用私钥登录,那么请将您的私钥复制到剪切板中(iCloud剪贴板同步或者使用其它同步App)然后点击 "Paste Privatekey from Clipboard" 从剪贴板中复制私钥,如果您的私钥是加密的那么请在在 Passphrase 中输入,否则留空。 关于密钥的更多信息请参考 [常见问题](#常见问题) +    * Password: 您的密码,如果使用密钥登录此处可以留空,请参考下面 +3. 如果您使用私钥登录,那么请将您的私钥复制到剪切板中(iCloud剪贴板同步或者使用其它同步App)然后点击 "Paste Privatekey from Clipboard" 从剪贴板中复制私钥,如果您的私钥是加密的那么请在 Passphrase 中输入,否则留空。 关于密钥的更多信息请参考 [常见问题](#常见问题) * Linode/Vultr/DigitalOcean 等厂商一般可以使用 root 账号和密码直接登录 -* 如果您使用 Google CloudEngine 或者 AWS EC2 等默认禁止 root 登录的账号,请查看下面的教程怎样配置私钥登录,然后重复上面的第3步骤在 HyperApp 中链接。 +* 如果您使用 Google Cloud Engine 或者 AWS EC2 等默认禁止 root 登录的账号,请查看下面的教程怎样配置私钥登录,然后重复上面的第3步。 --- @@ -32,12 +32,12 @@ 在这个页面您可以添加已有的密钥到 GCE 中,您可以点击修改,然后将您上面 `id_rsa.pub` 文件的内容复制到里面去, **GCE 会自动识别里面的用户名,显示在用户名一列,这个就是您登录服务器需要的用户名**。 -当您将公钥上传上去后,就可以用您的私钥在您的计算机上直接登录 GCE 服务器了。您可以在计算机上进行测试: +当您将公钥上传上去后,就可以用您的私钥在您的计算机上直接登录 GCE 服务器了。您可以在计算机(安装了Linux/Mac OS)进行测试: `ssh -i ~/.ssh/id_rsa 上一步显示的用户名@GCE.PUBLIC.IP` -一般来说您可以省略 `-i ~/.ssh/id_rsa` 参数因为 ssh 会自动检查这个默认路径,但如果您生成的密钥在其它地方就需要用 `-i` 参数指定了。 +一般来说您可以省略 `-i ~/.ssh/id_rsa` 参数,因为 ssh 会自动检查这个默认路径,但如果您生成的密钥在其它地方就需要用 `-i` 参数指定了。 如果您在计算机上测试没有问题,那么可以复制私钥的内容到手机上,并在 HyperApp 添加服务器窗口中点击复制密钥来登录了。 diff --git a/zh/Config/Add_mac.md b/zh/Config/Add_mac.md new file mode 100644 index 0000000..2f8c06f --- /dev/null +++ b/zh/Config/Add_mac.md @@ -0,0 +1,69 @@ +# 如何添加 macOS + + +## 1. 开启远程登录 + +1. 点击最顶部的左上角的【 → 系统偏好设置】 +2. 选中【共享 → 远程登录】 + + +## 2. 添加 macOS +1. 点击【添加服务器】 +2. 地址中填入你的 Mac IP 地址,你可以按住 `option` 键然后鼠标点击顶部菜单栏的 `Wifi` 图标查看 IP 地址,端口不用改。 +3. 填入你的 macOS 用户名和密码,关闭 `自动使用sudo` 选项。 + + + +## 3. 设置 Docker 环境 + + +### 3.1 安装 Docker + +在 [Docker 官网下载并安装 Docker](https://docs.docker.com/docker-for-mac/install/#download-docker-for-mac) + + +### 3.2 配置 SSH + +docker 和 homebrew 安装的应用一般都在 `/usr/local/bin` 下面(你可以运行 `which docker` 来验证),但 SSH 登录时的默认环境变量 `PATH` 并不包含此路径,所以需要改下 `sshd` 的配置。让 HyperApp 能够正确找到 docker 可执行文件。 + + +#### 手动设置 + +1. 运行 `sudo vi /etc/ssh/sshd_config` +2. 找到 `PermitUserEnvironment` 这一行,删掉前面的注释`#` 并且改成 `PermitUserEnvironment yes` +3. 运行 `vi ~/.ssh/environment` 添加一行 `PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin` 设置 `PATH` 变量 +4. 运行 `sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist` 关闭 sshd +5. 运行 `sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist` 重新开启 sshd + + +#### 没验证的一键脚本 + +```bash +sudo echo 'PermitUserEnvironment yes' >> /etc/ssh/sshd_config && \ +echo 'PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin' >> ~/.ssh/environment && \ +sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist && \ +sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist && \ +echo "完工" +``` + + +#### 验证是否修改成功 + + +在你 macOS 上执行 `ssh $USER@localhost env`,查看 `PATH` 是否被成功修改了 + + +#### 使用代理 + +如果你安装速度很慢,想使用代理的话,可以修改 `environment` 文件添加 `http_proxy 变量` + + +```bash +$ tail ~/.ssh/environment +PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin +http_proxy=http://127.0.0.1:6152 +https_proxy=http://127.0.0.1:6152 +``` + + +## 大功告成 diff --git a/zh/App-Config.md b/zh/Config/App-Config.md similarity index 100% rename from zh/App-Config.md rename to zh/Config/App-Config.md diff --git a/zh/Get-Started.md b/zh/Config/Get-Started.md similarity index 100% rename from zh/Get-Started.md rename to zh/Config/Get-Started.md diff --git a/zh/vendors.md b/zh/Config/Vendors.md similarity index 99% rename from zh/vendors.md rename to zh/Config/Vendors.md index 8502097..704e2f9 100644 --- a/zh/vendors.md +++ b/zh/Config/Vendors.md @@ -48,7 +48,7 @@ ### 添加服务器 - + 等几分钟实例创建完成并且启动后,在 [Servers](https://my.vultr.com/) 页面点击刚才的实例进去可以看到一些信息,最重要的是左侧的 `IP Address` `Username` `Password` 1. 手动配置:只需要将上面三个参数填入 HyperApp 中即可,端口不用填默认用 `22`。 @@ -57,7 +57,6 @@ 2. 出现 `Password` 提示时,输入上面看到的 `Password` 3. 运行 HyperApp 提示的命令,然后扫码即可。 - --- @@ -100,13 +99,7 @@ * 点击服务器信息框右侧的`KiWiVM Control Panel`按钮,默认会来到是`Main controls`,依次记下`IP address`和`SSH Port`,root密码在创建时一般会发到你的邮箱中,记下它。 * 依次填入记录下的 IP 地址, 用户名 root,端口填写上面`SSH Port`中的内容。密码为之前创建时发送到你邮箱中的密码。如果遗忘,可以在搬瓦工控制面板找到`Root password modification`中更改。 ---- - -## AWS - -### 创建服务器 - - +---- ## 推荐链接 diff --git a/zh/workflow.md b/zh/Config/Workflow.md similarity index 100% rename from zh/workflow.md rename to zh/Config/Workflow.md diff --git a/zh/Custom/2048.md b/zh/Custom/2048.md new file mode 100644 index 0000000..f480137 --- /dev/null +++ b/zh/Custom/2048.md @@ -0,0 +1,46 @@ +# 搭建个人专享2048在线小游戏 + +> 人总有那么些奇奇怪怪的时刻.觉得无聊.但又什么都不想干.玩游戏都不想下载--那就来一盘2048把:) + + +## 更新记录 + +* 2017.12.18:压缩了镜像.把体积控制在3MB以内 + +## 准备 + +* HyperApp +* 一个已经解析正确的域名 +* 耐心.仔细.认真 + +#### 到 HyperApp 进行设置 + +1. 转到商店页面.找``Docker Image``然后选择服务器并且保存进入配置界面 +2. 请完全按照下图配置进行填写! + + +| 应用设置名称 | 内容 | +| :-----------: | :------------------: | +| Image | fanvinga/docker-2048 | +| Options | | +| Command | | +| Args | | +| Nginx设置名称 | 内容 | +| 域名 | 你要给2048的域名 | +| 应用端口 | | +| Https | 将http重定向到https | +| 域名 | 你要给2048的域名(自动填写) | +| 邮箱 | 域名所对应的邮箱 | + +* 没有填写的设置即为留空 +* 保存并且进行安装.请确保这时候``Nginx Proxy``以及``Nginx SSL Support``正常默认安装并且启动了 +## 大功告成 + +* 这时候去访问你的域名吧٩(˃̶͈̀௰˂̶͈́)و + + +## 吐槽一下 +* 自从做了这个.真·没事就上去玩玩🤦‍♂️同一浏览器登录还能保存记录🌝来啊!快活啊! + + + diff --git a/zh/advanced/docker-image-introduction.md b/zh/Custom/docker-image-introduction.md similarity index 97% rename from zh/advanced/docker-image-introduction.md rename to zh/Custom/docker-image-introduction.md index e220650..8b78222 100644 --- a/zh/advanced/docker-image-introduction.md +++ b/zh/Custom/docker-image-introduction.md @@ -9,7 +9,7 @@ HyperApp 的所有应用都是基于Docker技术的,Docker技术是一种新 HyperApp 中内置了许多经过作者精心调整的镜像,对于新手而言部署起来非常方便。但凡事都有两面性,便利性得到满足时,可定制行就容易被压制。如果你需要运行自定义的镜像或者非HyperApp提供的镜像,那么HyperApp 中的`DockerImage`这个应用可以满足你 以下就是Dockerimage的界面 - + 其中主要的配置如下: diff --git a/zh/Custom/h5ai.md b/zh/Custom/h5ai.md new file mode 100644 index 0000000..62cb6e4 --- /dev/null +++ b/zh/Custom/h5ai.md @@ -0,0 +1,73 @@ +# 搭建精美H5AI文件服务器 + +> 很多人会遇到这样一个问题.有时候想方便快捷的下载或者分享VPS上面的一些文件.但是又不熟悉命令而且也不方便.这时候文件服务器就派上用场了. + + +## 更新记录 + +- 2018.1.10: 更新镜像.增加了全局搜索文件的功能.改进了打包压缩的功能.修复了一个bug.增加了自定义介绍的方法.增加了对于php文档的高亮显示 +- 2017.12.29:重构镜像.修复了没有输出日志的bug.并且通过增加启动参数`--restart=always`来提升稳定性.请自行在options中增加. +- 2017.11.19:再次更新镜像.本次更新极大的压缩了镜像的体积.请记得`Pull Image`. +- 2017.11.19:两个分支的镜像都更新了.修复BUG和增强性能.请记得`Pull Image`. +- 2017.11.14:增加了密码保护部分,并且更新了原来的镜像.请原来的用户也pull一下image. +- 2017.10.02:增加了联合Cloud-Torrent的部分 +- 2017.09.02:重要更新!请所有看过这篇文章的朋友注意.镜像已经再次更新.体积缩小到110MB.同时功能更为丰富.另外挂载目录已修改以避免一些问题.请仔细查看文章图片. +- 2017.08.27:重要更新!把原来的docker换成我自己的镜像.做了大量的更新. + +## 准备 + +- **HyperApp** +- **一个已经解析正确的域名(ping验证)** +- **耐心.仔细.认真** + +## 服务端部署 + +##### 首先我们先进入VPS的SSH窗口执行命令 + +``` +sudo su +mkdir /share && chmod 777 /share +ln -s /share . +``` + +- 这时候/share就是共享目录并且已经软连接到/root目录下面.可以在root目录下面快速访问.也可以通过`cd /share`来访问 +- 如果你想自定义目录也可以.替换/share即可.但是要注意权限设置 + +#### 其次转到HyperApp进行设置 + +1. **转到商店页面.找到Docker Image然后选择服务器并且保存进入配置界面** +2. **请完全按照下图配置进行填写!** + +| 应用设置名称 | 内容 | +| ----------------- | ----------------------------------- | +| Image | fanvinga/docker-h5ai | +| Options | `-v /share:/share --restart=always` | +| Command | | +| Args | | +| **Nginx设置名称** | **内容** | +| 域名 | 你要给h5ai的域名 | +| 应用端口 | | +| Https | 将http重定向到https | +| 域名 | 你要给h5ai的域名(自动填写) | +| 邮箱 | 域名所对应的邮箱 | + +1. **保存并且进行安装.请确保这时候Nginx Proxy以及Nginx SSL Support正常默认安装并且启动了** + +## 添加密码保护 + +> 不少朋友反应.h5ai默认访问不需要密码会不会很不安全?放点文件都被人看光了.那就寻思着增加个密码保护功能呗.一研究.h5ai本身的只能保护info界面.在php增加一来麻烦二来性能估计一般.想起来自己做docker的时候为了方便用nginx把这些都罩起来了.索性就用nginx来操作.朋友们按照下列步骤来操作即可. + +1. **把上面image这个空替换为fanvinga/docker-h5ai:auth** +2. **把options的内容更改为-v /share:/share -e USER=你要的用户名 -e PASSWD=你要的密码** +3. **更新配置即可,要是第二步没有用-e指定用户名&密码的话,默认用户名&密码是两个vinga** + +## 自定义介绍 + +- **如果想在h5ai的顶部或者底部增加一些说明.只需要在分享目录里面新增一个 _h5ai.header.md 然后输入你想输出的内容即可.会自动渲染. html 同理.** +- **要在底部增加改成footer即可** +- **如果文件名的header不为headers则只有当前目录显示.变为复数则在所有目录显示** + +## 大功告成 + +- **这时候去访问你的域名吧٩(˃̶͈̀௰˂̶͈́)و** + diff --git a/zh/Custom/monitor.md b/zh/Custom/monitor.md new file mode 100644 index 0000000..0917cef --- /dev/null +++ b/zh/Custom/monitor.md @@ -0,0 +1,188 @@ + +## 搭建精美强大Grafana监控系统 + + +> **随着剁手越来越畅快.手里积攒的小鸡也越来越多了.那今天就讲解一下怎么样搭建一个美轮美奂的基于Grafana+influxDb+Colletcd的监控系统.感谢开源世界!** + + + + + + +## 更新记录 + +- 2018.08.10:根据collectd-core的最新安装情况修改了一下配置文件的描述 +- 2018.08.06:更改了初始命令.使用了更加官方的配置文件生成方式. +- 2018.04.05:改动了一下文档.改进了collect的的安装命令以及配置文件.安装更少的核心以及必备依赖即可.注意collectd的gpg提供有问题.暂时没有找到正确的.所以更新的时候要加上`--force-yes`进行更新. +- 2017.12.20:修改了获取`InfluxDB`容器名称的命令.更直观简单 +- 2017.12.3:修改了`InfluxDB`的启动参数.让暴露端口更少.更安全 +- 2017.10.1:增加了网络拓扑部分. + + + +## 效果截图 + +![monitor-1](../../images/monitor-1.jpg) +![monitor-2](../../images/monitor-2.jpg) + + + +## 网络拓扑 + +![monitor-0](../../images/monitor-0.jpg) + + + +## 准备 + +* VPS需要先安装好`docker-ce` +* HyperApp +* 一个已经解析正确的域名(ping验证) +* 耐心.仔细.认真 + + + +## 监控端部署 + +#### 首先执行命令 + + +``` +mkdir -p /root/monitor/{collectd,grafana,influxdb,influxdb/{conf,db,monitor}} +curl -ksSL raw.githubusercontent.com/collectd/collectd/master/src/types.db > /root/monitor/collectd/types.db +docker run --rm -it influxdb:alpine influxd config > /root/monitor/influxdb/conf/influxdb.conf +``` +* 然后使用你喜欢的文本编辑器`vim/nano`对`/root/monitor/influxdb/conf/influxdb.conf`进行编辑.找到`[[collectd]]`配置项.并把`enabled = false`更改为`enabled = true`.保存即可 +* 执行完这些命令会在`/root`目录下生成我们所需要的一些文件和目录. + + + + +#### 其次部署安装InfluxDB + +1. 转到商店页面.找到`Docker Image`然后选择服务器并且保存进入配置界面 +2. 请完全按照下图配置进行填写! +3. 保存并且进行安装. + +| 应用设置名称 | 内容 | +| :-----------: | :--------------------------------------: | +| Image | influxdb:alpine | +| Options | -p 25826:25826/udp -v /root/monitor/influxdb/conf/influxdb.conf:/etc/influxdb/influxdb.conf:ro -v /root/monitor/influxdb/db:/var/lib/influxdb -v /root/monitor/collectd/types.db:/usr/share/collectd/types.db | +| Command | -config /etc/influxdb/influxdb.conf | +| Args | | +| Nginx设置名称 | InfluxDB不需要nginx分流.请留空并隐藏设置 | + + + +#### 部署collectd并且把数据传给InfluxDB + +* 这里我只讲`Debian 8`的安装办法.除此之外请自行Google搜索`collectd`安装办法 +* 执行以下命令更新源并安装`collectd` + +``` +echo -e "deb http://pkg.ci.collectd.org/deb jessie collectd-5.7 \n" >> /etc/apt/sources.list.d/collectd.list +apt-get update && apt-get install collectd-core liboping-dev -y --force-yes +``` + +* 自行修改下列内容然后创建并添加内容到`/etc/collectd/collectd.conf`里面.`ping`这个模块里面的目标地址可以自行添加到`/etc/hosts`里面.完成之后执行`systemctl restart collectd`重启collectd.启动collectd报错请检查编辑器是否修改了配置导致错误 + +``` +Hostname "被监控节点的名称,可以自定义" +FQDNLookup false +BaseDir "/var/lib/collectd" +PluginDir "/usr/lib/collectd" +TypesDB "/usr/share/collectd/types.db" +Interval 10 +LoadPlugin cpu +LoadPlugin df +LoadPlugin disk +LoadPlugin interface +LoadPlugin memory +LoadPlugin network +LoadPlugin ping +LoadPlugin swap + + Globals false + + + ReportByCpu true + ReportByState true + ValuesPercentage true + + + FSType rootfs + FSType sysfs + FSType proc + FSType devtmpfs + FSType devpts + FSType tmpfs + FSType fusectl + FSType cgroup + IgnoreSelected true + ValuesAbsolute true + ValuesPercentage false + + + ValuesAbsolute false + ValuesPercentage true + + + ReportRelative false + + + Server "influxdb所在服务器地址可用域名" "25826" + + + Host "想要在被监控机上ping的目标ip" + Interval 2.0 + Timeout 0.9 + TTL 255 + + +``` + + + +#### 根据InfluxDB的container id部署grafana + +1. 在vps的ssh执行`docker ps -f ancestor=influxdb:alpine `.这时候会返回一个形如`docker-04f39d`一样的容器名称.复制备用 +2. 转到HyperApp的商店页面.找到`Docker Image`然后选择服务器并且保存进入配置界面 +3. 请完全按照下图配置进行填写! +4. 保存并安装,这时候两个docker如果正常启动并且没有报错.访问域名就会正常出现grafana的登录界面. + +| 应用设置名称 | 内容 | +| :-----------: | :--------------------------------------: | +| Image | grafana/grafana | +| Options | `--link docker-04f39d(请自行修改为你的InfluxDB的容器名称):influxdb -v /root/monitor/grafana:/var/lib/grafana` | +| Command | | +| Args | | +| Nginx设置名称 | 内容 | +| 域名 | 你要给grafana的域名 | +| 应用端口 | 3000 | +| Https | 将http重定向到https | +| 域名 | 你要给grafana的域名(自动填写) | +| 邮箱 | 域名所对应的邮箱 | + +* 如果在grafana运行过程中遇到localhost的问题.那么请在初始登录完grafana之后在options里面加上`-e GF_SERVER_ROOT_URL="https://你要给grafana的域名"`并且更新配置. + +* 如果遇到安装失败报错格式不正确.请检查`--link`的两个短杠是否被系统自动合并 + + + + +#### 设置Grafana + +1. 如图登录`grafana` + * 用户名 admin + * 密码 admin + + ![monitor-3](../../images/monitor-3.jpg) + +2. 点击`Add data source`来到增加数据库界面.按照下图填写配置.要完全一致! + ![monitor-4](../../images/monitor-4.jpg) + +3. 点击`Dashboards`然后选择`New`.选择一个图表样式.这里用`Graph`举例.再点击一下`Panel Title`.会出来一个小菜单.选择`Edit`.按照下图进行配置并且在`Legend`选项卡开启`Avg`即可得到一个节点到联通的链路信息图例. + ![monitor-5](../../images/monitor-5.jpg) + +4. 这只是其中一个小例子.还有监控CPU/内存/硬盘/流量/IO等等的图例.请到Grafana官网查找图例配置教程(官网真的文档非常非常非常齐全).或者Google搜索别人提供的配置. + diff --git a/zh/pydio.md b/zh/Custom/pydio.md similarity index 81% rename from zh/pydio.md rename to zh/Custom/pydio.md index 7cff1a6..575521f 100644 --- a/zh/pydio.md +++ b/zh/Custom/pydio.md @@ -5,7 +5,6 @@ > 大家都知道国内的云盘提供商目前来讲只剩下百度云盘.那么除了在线网盘.我们其实还可以用VPS部署一个私人网盘.也就是个人云.今天为大家带来比OwnCloud和NextCloud更加精美的Pydio部署教程 -## 本文最新更新地址为 https://vinga.fun/pydio ## 准备&注意事项 @@ -21,21 +20,21 @@ 3. **转到商店页面.找到`Docker Image`然后选择服务器并且保存进入配置界面** 4. **请确认你完全按照按照下图对两个应用进行了设置.有中文提示的相应修改.其他不要动.** 5. **保存并且进行安装** - ![IMG_1927](./images/pydio-1.jpg) + ![IMG_1927](../../images/pydio-1.jpg) ## 对Pydio进行设置 1. **稍等一段时间等应用都正常启动之后.访问`Pydio`的域名会看到这样一张图** - ![pydio-2](./images/pydio-2.jpg) + ![pydio-2](../../images/pydio-2.jpg) * **前面三个警告是可以忽略的的.因为跟宿主机部署不一样.有些工作放在docker来做了.总之这时候点击绿色的`CONTINUE`即可.** 2. **这里选择简体中文.然后点击开始向导.然后一路配置.先是网站名称.然后是管理员账户创建.** - ![pydio-2](./images/pydio-3.jpg) + ![pydio-2](../../images/pydio-3.jpg) 3. **接着来到配置数据库这里.重点来了.按照图片中的提示进行配置.** * **注意Host一定要写ip然后后面半角冒号并加上端口.例如`8.8.8.8:8888`** * **密码写Pydio数据库密码.不是数据库Root密码.** - ![pydio-2](./images/pydio-4.jpg) + ![pydio-2](../../images/pydio-4.jpg) 4. **然后选择`TEST DB CONNECTION`通过之后一路下一步即可.稍等片刻跳转到登录页面登录即可** - ![pydio-5](./images/pydio-5.jpg) + ![pydio-5](../../images/pydio-5.jpg) ## 客户端的使用方法 @@ -51,10 +50,3 @@ * **这时候去访问你的域名吧٩(˃̶͈̀௰˂̶͈́)و** -## 写在最后 - -* 写了这么久.如果能有所收获那就是我最大的荣幸了:) -* 如果可以的话.可以关注一下 https://vinga.fun 这是我的私人博客地址:) -* 如有问题可发邮件至我邮箱fanalcest@gmail.com联系或telegram@fanvinga - -banner diff --git a/zh/Add-Sever-Cloud.md b/zh/Deprecated/Add-Sever-Cloud.md similarity index 100% rename from zh/Add-Sever-Cloud.md rename to zh/Deprecated/Add-Sever-Cloud.md diff --git a/zh/Aliyun-docker.md b/zh/Deprecated/Aliyun-docker.md similarity index 100% rename from zh/Aliyun-docker.md rename to zh/Deprecated/Aliyun-docker.md diff --git a/zh/Apps.md b/zh/Deprecated/Apps.md similarity index 94% rename from zh/Apps.md rename to zh/Deprecated/Apps.md index c2f78e4..ae66363 100644 --- a/zh/Apps.md +++ b/zh/Deprecated/Apps.md @@ -2,8 +2,6 @@ ## 目录 -* [网络](#网络) - * [SS: TCP Fast Open 和 OBFS](#shadowsocks-libev) * [网站](#网站) * [Hugo](#hugo) * [Flarum](#flarum) @@ -16,13 +14,6 @@ ## 网络 -### Shadowsocks-libev - -**TCP Fast Open** -默认配置就是开启的,在Surge 中需要配置 `,tfo=true` - - - #### 配置客户端 在客户端里输入你的 IP 或者域名点击连接,如果有安全提示可以忽略(因为我们用的自签名证书),然后输入用户名、密码连接即可。 diff --git a/zh/Domain.md b/zh/Deprecated/Domain.md similarity index 100% rename from zh/Domain.md rename to zh/Deprecated/Domain.md diff --git a/zh/Get-Domain.md b/zh/Deprecated/Get-Domain.md similarity index 93% rename from zh/Get-Domain.md rename to zh/Deprecated/Get-Domain.md index 6a6ca00..98e9e6e 100644 --- a/zh/Get-Domain.md +++ b/zh/Deprecated/Get-Domain.md @@ -1,6 +1,5 @@ > 在今时今日.拥有一个个人域名已经成为了一种互联网的必需品(笑).言归正传.很多人觉得申请一个域名会是一件复杂而困难的事情.并且可能要花很多钱.那么今天为大家带来一篇免费的个人域名的申请教程。 -* **本文原文链接https://vinga.fun/domain** # 准备 @@ -16,15 +15,15 @@ -**首先访问[www.freenom.com](http://www.freenom.com),freenom是一个免费的域名服务商,旗下提供.ML、.CF、.GA、.TK、.GQ四个免费域名的注册。(值得一提的是[www.dot.tk](http://www.dot.tk)也是一家免费域名服务商,提供.tk域名的免费注册,注册的步骤与在freenom中大致相同)然后在屏幕中间输入框输入你想要的域名比如`fanvinga.fun`,然后点击检查可用性** +**首先访问[www.freenom.com](http://www.freenom.com),freenom是一个免费的域名服务商,旗下提供.ML、.CF、.GA、.TK、.GQ四个免费域名的注册。(值得一提的是[www.dot.tk](http://www.dot.tk)也是一家免费域名服务商,提供.tk域名的免费注册,注册的步骤与在freenom中大致相同)然后在屏幕中间输入框输入你想要的域名比如`fanvinga.tech`,然后点击检查可用性** -## ![](./images/Domain-1.jpg) +## ![](../../images/Domain-1.jpg) **然后选中自己喜欢的.点击现在获取.然后右上角购物车完成** -![](./images/Domain-2.jpg) +![](../../images/Domain-2.jpg) @@ -34,15 +33,15 @@ -![](./images/Domain-3.jpg) +![](../../images/Domain-3.jpg) **下一步在这里填写你的邮箱.然后选择验证我的邮箱地址.然后从邮箱中打开发过来的链接即可进入下一步** -![](./images/Domain-4.jpg) +![](../../images/Domain-4.jpg) **在页面填上你的资料,按照相应信息填写即可(最好使用美国的代理然后找一个美国人信息生成器)。记得勾选我已阅读并同意条款和条件.当然填写自己的信息也没有问题.这里给出一个范例** -![](./images/Domain-5.jpg) +![](../../images/Domain-5.jpg) **接下来的步骤一路下一步.然后登陆的时候使用你的邮箱和刚刚的密码来登陆.稍等片刻即可解析完成.其他更多关于freenom的问题请进入hyperapp的Telegram交流群请教帅气的FanVinga:)** diff --git a/zh/centos-upgrade-docker.md b/zh/Deprecated/centos-upgrade-docker.md similarity index 100% rename from zh/centos-upgrade-docker.md rename to zh/Deprecated/centos-upgrade-docker.md diff --git a/zh/Deprecated/chat.md b/zh/Deprecated/chat.md new file mode 100644 index 0000000..a30300e --- /dev/null +++ b/zh/Deprecated/chat.md @@ -0,0 +1,58 @@ +# 搭建HACK·CHAT即时通信平台 + +> 有时你需要临时发送一些比较隐私的东西.又不想直接在聊天软件中直接发送.这时候维护一个轻量的即时通信平台就派上用场了.只要在url后面随便加上一个单词就能创建你的会话.非常方便. + + +## 更新记录 + +* 2018.09.07:更新了镜像.修复了无法正常转发websocket的严重bug.更新镜像即可. +* 2018.07.20: 根据最新的仓库地址彻底重构镜像.体积从147MB缩小为46.5MB.并且合并了上游文件的变更.增加了新的命令.使用了更彻底的前后端分离.提升了性能.新仓库地址为 https://github.com/hack-chat/main 如有需要请自行查看 +* 2017.09.08: 修复了一个地址拼凑错误.如果部署不能用的.请pull一下最新的image.抱歉抱歉😂😂 + +## 准备 + +* HyperApp +* 一个已经解析正确的域名(ping验证) +* 耐心.仔细.认真 + +#### 到HyperApp进行设置 + +1. 转到商店页面.找到`Docker Image`然后选择服务器并且保存进入配置界面 +2. 请完全按照下图配置进行填写! + +| 应用设置名称 | 内容 | +| :-----------: | :----------------------: | +| Image | fanvinga/docker-hackchat | +| Options | | +| Command | | +| Args | | +| Nginx设置名称 | 内容 | +| 域名 | 你要给hackchat的域名 | +| 应用端口 | | +| Https | 将http重定向到https | +| 域名 | 你要给hackchat的域名(自动填写) | +| 邮箱 | 域名所对应的邮箱 | + + +3. 保存并且进行安装.请确保这时候`Nginx Proxy`以及`Nginx SSL Support`正常默认安装并且启动了 + + +## 大功告成 + +* 这时候去访问你的域名吧٩(˃̶͈̀௰˂̶͈́)و + +## 排错指引 + +* 如果点进去频道发现不能出来填写用户名的提示.即代表连接失败.按照以下步骤排查问题 + * 首先先`Pull Image`到最新镜像 + * 清除浏览器的缓存(可能缓存了错误的client.js) + * 稍等一会等hyper的nginx把证书完全签发下来.因为链接过程会用到证书 + +## 温馨提示 +* 如果您不打算对hack·chat部署https的话.您需要设置环境变量`-e PROTOCOL=ws`来直接映射端口等等操作 +* 本镜像现在支持的环境变量如下.如有需要请自行替换 + * ADMIN_NAME=admin + * ADMIN_PASSWORD=password + * PASSWORD_SALT=salt + * PROTOCOL=wss + diff --git a/zh/dns.md b/zh/Deprecated/dns.md similarity index 100% rename from zh/dns.md rename to zh/Deprecated/dns.md diff --git a/zh/Deprecated/filemanager.md b/zh/Deprecated/filemanager.md new file mode 100644 index 0000000..e14ce2b --- /dev/null +++ b/zh/Deprecated/filemanager.md @@ -0,0 +1,64 @@ +#搭建filemanager超轻量私人云盘 + +> 现在市面上有很多比如 ownCloud nextCloud pydio filerun等等的开源云盘.但是感觉都很臃肿.有时候我们只需要一个轻量化功能还算齐全的网盘.caddy+filemanager就应运而生了 + +## 更新记录 + +- 2017.12.12:增加了永久化存储设置的选项 + +## 准备 + +* **HyperApp** +* **一个已经解析正确的域名(ping验证)** +* **耐心.仔细.认真** + + +## 服务端部署 + +##### 首先我们先进入VPS的SSH窗口执行命令 + +* 如果在h5ai设置过了.那么可以跳过这一步./share可以同时被h5ai和filemanager使用 + +``` +sudo su +mkdir /share && chmod 777 /share +ln -s /share . +``` + +* 这时候/share就是共享目录并且已经软连接到/root目录下面.可以在root目录下面快速访问.也可以通过`cd /share`来访问 +* 如果你想自定义目录也可以.替换/share即可.但是要注意权限设置 + + +#### 其次转到HyperApp进行设置 + +1. **转到商店页面.找到`Docker Image`然后选择服务器并且保存进入配置界面** +2. **请完全按照下图配置进行填写!** + +| 应用设置名称 | 内容 | +| :-----------: | :------------------: | +| Image | fanvinga/docker-filemanager | +| Options | -v /share:/share -v /srv/docker/filemanager:/db | +| Command | | +| Args | | +| **Nginx设置名称** | **内容** | +| 域名 | 你要给hfilemanager的域名 | +| 应用端口 | | +| Https | 将http重定向到https | +| 域名 | 你要给filemanager的域名(自动填写) | +| 邮箱 | 域名所对应的邮箱 | + + +3. **保存并且进行安装.请确保这时候`Nginx Proxy`以及`Nginx SSL Support`正常默认安装并且启动了** + +## 默认设置 + +* **filemanager是个功能完整的网盘.带有权限管理的功能.所以一开始需要用 admin/admin 去登陆.之后在设置里面设置语言为中文即可.也可以添加用户.各位自行探索了.** + +## 联合Cloud-Torrent + +* **如果想做到利用Cloud-Torrent下载完BT之后直接可以在filemanager里面找到的话.只需要在上面的options里面加入`-v /srv/docker/Cloud-Torrent:/share/download`.然后更新配置.这样在filemanager目录下会出现download文件夹.里面就有CT下载完成的文件啦** + +## 大功告成 + +* **这时候去访问你的域名吧٩(˃̶͈̀௰˂̶͈́)و** + diff --git a/zh/gce-faq.md b/zh/Deprecated/gce-faq.md similarity index 100% rename from zh/gce-faq.md rename to zh/Deprecated/gce-faq.md diff --git a/zh/Deprecated/mirror.md b/zh/Deprecated/mirror.md new file mode 100644 index 0000000..7ff716e --- /dev/null +++ b/zh/Deprecated/mirror.md @@ -0,0 +1,68 @@ +# 超简单搭建常见404站点镜像 + +> 众所周知.鉴于一些你懂的原因.有许多著名网站在国内无法访问.今天就教大家怎么做这些网站的镜像 + + +## 更新记录 + +* 2018.08.23:镜像更新.修复了youtube不可以用的bug.并且优化了镜像设置 +* 2017.12.18:压缩了镜像. +* 2017.10.11:修改了一下措辞 + +## 准备 + +* HyperApp +* 一个已经解析正确的域名(ping验证) +* 耐心.仔细.认真 + +## 提醒 +* ~~由于`Zmirror`作者太久没有更新.本镜像不支持反向代理YouTube.可以自行学习 `You2PHP` 的相关设置.~~ +* 在最新的更新中`YouTube`已经重新可用 + +## HyperApp设置服务端 + +1. 转到商店页面.找到`Docker Image`然后选择服务器并且保存进入配置界面 +2. 请完全按照下图配置进行填写! + +| 应用设置名称 | 内容 | +| :-----------: | :------------------------------------: | +| Image | fanvinga/docker-zmirror | +| Options | -e DOMAIN=你要给镜像站点的域名 -e GOAL=youtube | +| Command | | +| Args | | +| Nginx设置名称 | 内容 | +| 域名 | 你要给镜像站点的域名 | +| 应用端口 | | +| Https | 将http重定向到https | +| 域名 | 你要给镜像站点的域名(自动填写) | +| 邮箱 | 域名所对应的邮箱 | + + +3. 保存并且进行安装.请确保这时候`Nginx Proxy`以及`Nginx SSL Support`正常默认安装并且启动了 + + +## 代理站点设置 + +* 这里介绍一下`GOAL`所有可能的取值.请注意.如果要镜像`Google`请不要修改`GOAL`.即`options`里面只留下`-e DOMAIN=xxx` + +* 另外当需要反向代理`Twitter`时请加入`-e FUNC=twitter`,别的网站并不需要. + + ``` + archive_org—————————Archive.org镜像 + duckduckgo——————————Duckduckgo镜像 + dropbox—————————————Dropbox镜像 + thumblr—————————————Thumblr镜像 + economist———————————Economist(经济学人)镜像 + thepiratebay————————Thepiratebay(海盗湾)镜像 + twitter_mobile——————Twitter手机版(和电脑要分开) + twitter_pc——————————Twitter电脑版(和手机要分开) + youtube—————————————Youtube镜像 + youtube_mobile——————Youtube手机版(要和电脑分开) + ``` + +## 大功告成 + +* 这时候去访问你的域名吧٩(˃̶͈̀௰˂̶͈́)و + + + diff --git a/zh/proxy/otunnel.md b/zh/Deprecated/otunnel.md similarity index 55% rename from zh/proxy/otunnel.md rename to zh/Deprecated/otunnel.md index 7a78933..1b1e2d7 100644 --- a/zh/proxy/otunnel.md +++ b/zh/Deprecated/otunnel.md @@ -5,26 +5,27 @@ ## 更新记录 +* 2017.12.17: 更新了镜像和设置向导 * 2017.09.10: 增加了设置向导 ## 准备 -* **Hyperapp** -* **一个已经解析正确的域名(ping验证)** -* **耐心.仔细.认真** +* HyperApp +* 一个已经解析正确的域名(ping验证) +* 耐心.仔细.认真 -## 到Hyperapp进行设置服务端 +## 到HyperApp进行设置服务端 -1. **转到商店页面.找到Docker Image然后选择服务器并且保存进入配置界面** -2. **请完全按照下图配置进行填写!** +1. 转到商店页面.找到`Docker Image`然后选择服务器并且保存进入配置界面 +2. 请完全按照下图配置进行填写! -| 应用设置名称 | 内容 | -| :-----------: | :------------------: | -| Image | fanvinga/docker-otunnel | -| Options | | -| Command | | -| Args | | +| 应用设置名称 | 内容 | +| :-----: | :---------------------: | +| Image | fanvinga/docker-otunnel | +| Options | `--network=host` | +| Command | | +| Args | | * 默认的监听端口是10000且TOKEN为token.如果要设置.请在`Options`这个空里面加入`-e TOKEN=你要设置的token -e BIND_PORT=你要设置的端口`注意每个`-e`只能设置一个变量.等号前面的变量名不可更换. * 没有填写的设置即为留空 @@ -36,11 +37,11 @@ 1. 假设服务端的地址为 example.com 2. 假设你设定的token为token.监听端口为10000 3. 从客户端能连接服务端(无需在同一个网段内. - + ### 客户端准备工作 - 0. https://dl.ooclab.com/otunnel/1.2.3/ - 1. 到这里下载你对应平台的客户端.本文以macOS举例(下载darwin-amd64版本并放置在桌面) - 2. 运行`chmod +x /path/to/otunnel`赋予权限.记得修改路径 + 0. https://dl.ooclab.com/otunnel/1.2.3/ + 1. 到这里下载你对应平台的客户端.本文以macOS举例(下载darwin-amd64版本并放置在桌面) + 2. 运行`chmod +x /path/to/otunnel`赋予权限.记得修改路径 ### 反向代理 举例:将客户端可以访问的 192.168.1.3:22 映射到服务端上的 23333 端口: @@ -61,12 +62,5 @@ https://github.com/ooclab/otunnel/wiki/USAGE.zh_CN ## 吐槽一下 -* **做docker的时候一直提示找不到可执行文件🤦‍♂️🤦‍♂️明明就在那里🤦‍♂️最后开挂给开发者提issue才修好.** - -## 写在最后 - -* 写了这么久.如果能有所收获那就是我最大的荣幸了:) -* 如果可以的话.可以关注一下 https://vinga.fun 这是我的私人博客地址:) -* 如有问题可发邮件至我邮箱fanalcest@gmail.com联系或telegram@fanvinga +* 做docker的时候一直提示找不到可执行文件🤦‍♂️🤦‍♂️明明就在那里🤦‍♂️最后开挂给开发者提issue才修好. -banner diff --git a/zh/Deprecated/speedtest.md b/zh/Deprecated/speedtest.md new file mode 100644 index 0000000..fdffe39 --- /dev/null +++ b/zh/Deprecated/speedtest.md @@ -0,0 +1,45 @@ +# 自建网页版speedtest测速教程 + +## 更新记录 + +* 2018.7.11:制作轻量化镜像 + +## 准备 + +* HyperApp +* 一个已经解析正确的域名 +* 耐心.仔细.认真 + +#### 到 HyperApp 进行设置 + +1. 转到商店页面.找``Docker Image``然后选择服务器并且保存进入配置界面 +2. 请完全按照下图配置进行填写! + + +| 应用设置名称 | 内容 | +| :---------------: | :-------------------------------: | +| Image | fanvinga/docker-speedtest | +| Options | | +| Command | | +| Args | | +| Nginx设置名称 | 内容 | +| 域名 | 你要给speedtest的域名 | +| 应用端口 | 80 | +| Https | 将http重定向到https | +| 域名 | 你要给speedtest的域名(自动填写) | +| 邮箱 | 域名所对应的邮箱 | + +* 没有填写的设置即为留空 +* 保存并且进行安装.请确保这时候``Nginx Proxy``以及``Nginx SSL Support``正常默认安装并且启动了 +## 大功告成 + +* 这时候去访问你的域名吧٩(˃̶͈̀௰˂̶͈́)و + +![speedtest](../../images/speedtest-1.png) + +## 温馨提示 + +* 源码来自于 https://github.com/adolfintel/speedtest 我做了一定的自定义工作并且制作了使用 nginx + php-fpm 架构的docker image (355MB->19.6MB) + + + diff --git a/zh/static-site.md b/zh/Deprecated/static-site.md similarity index 100% rename from zh/static-site.md rename to zh/Deprecated/static-site.md diff --git a/zh/proxy/unicom.md b/zh/Deprecated/unicom.md similarity index 100% rename from zh/proxy/unicom.md rename to zh/Deprecated/unicom.md diff --git a/zh/FAQ-App.md b/zh/FAQ-App.md new file mode 100644 index 0000000..d6666a0 --- /dev/null +++ b/zh/FAQ-App.md @@ -0,0 +1,65 @@ +## 应用问题 + +### 关于 Nginx 的上传限制 + +* 如果你使用了 `Nginx Proxy`,则默认存在2M的文件上传限制,你可以通过执行以下命令自动创建解除限制所需的文件来解开限制,执行完毕后重启`Nginx Proxy`即可 + +```sh +echo "client_max_body_size 100m;" > /srv/docker/nginx/vhost.d/default +``` +* 如果原命令执行后无效果,可以尝试以下两种方案,执行完毕后同样重启: + +1. ```echo "client_max_body_size 100m;" | sudo tee -a /srv/docker/nginx/vhost.d/default``` +2. ```sudo su echo "client_max_body_size 100m;" > /srv/docker/nginx/vhost.d/default``` + + + +### 关于 PHP 内置的上传限制 + +* 请参考以下链接中的解决方案: + + https://github.com/waylybaye/HyperApp-Guide/issues/152 + + + +### NextCloud 安装问题 + +1. 设置数据库时,填入数据库的账号密码之后,提示authentication出现问题,无法认证 + 这是MySQL的新版本更新了验证方式,比较简单的方式是在安装mysql时,手动选择`5.x`版本的镜像,不要选择`latest`,另一个方案是使用Mariadb,两者在后续操作上没有区别 +2. 进行安全检查时,提示没有设置`referer` + 解决方法参考更改nginx的默认上传大小,在``` srv/docker/nginx/vhost.d/```目录下,新建一个文件,文件名为你为nextcloud分配的域名(要完整),在里面加入两条记录```add_header Referrer-Policy no-referrer;client_max_body_size 500m;``` ,你可以使用 ```echo "add_header Referrer-Policy no-referrer;client_max_body_size 500m;" >> /srv/docker/nginx/vhost.d/你的域名``` + + + +### Wordpress 提示设置ftp +在自动更新wordpress新版本时,提示填入ftp凭据,这是由于在配置wordpress的过程中文件没有写权限造成的,所以需要重新更改权限.查询一下wordpress的container name,然后执行 ```docker exec CONTAINER_NAME chown -R www-data:www-data /var/www/html```,`CONTAINER_NAME`填写你查询到的结果,具体参考[这里](https://github.com/docker-library/wordpress/issues/24). + + + +### 关于`squid`内存不足无法正确启动 + +1. `Ubuntu`及`Debian`使用如下命令创建`swap`: + +```bash +sudo su +fallocate -l 1G /swapfile +chmod 600 /swapfile +mkswap /swapfile +swapon /swapfile +cp /etc/fstab /etc/fstab.bak +echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab +echo "vm.swappiness = 10" » /etc/sysctl.conf +sysctl -p +``` + +* Centos请将 + + ``` + echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab + ``` + + 换成 + + ``` + echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab + ``` diff --git a/zh/FAQ-Error.md b/zh/FAQ-Error.md new file mode 100644 index 0000000..bdc724e --- /dev/null +++ b/zh/FAQ-Error.md @@ -0,0 +1,97 @@ +## 安装错误 + + + +#### 为什么在安装应用的时候.会卡在安装中非常久(这种情况多出现在国内VPS中)? + +* 请先确定你的VPS可以正确联网再参考下列步骤: + * 方法1: 在hyperapp终端左下角第一个按钮中.选择安装阿里云国内Docker源 + * 方法2: 阿里云用户请参考[使用阿里云镜像加速服务](Aliyun-docker.md) + * 终极解决办法: 远离国内VPS. + * 如果你使用的国外 VPS 依然非常慢,那估计是你VPS的网络比较慢,有些应用的镜像很大,下载需要时间。 + + + +#### 安装应用时提示`连接失败/无法连接/Transport read/Timeout` + +1. 请不要打开VPN连接hyperapp.(或者在对应的App中加一条规则,设置你的服务器IP直连) +2. 检查服务器IP是否变了(GCP 如果没有用静态IP,服务器关机后再重启IP可能会变) +3. 检查SSH端口有没有填对(默认22) +4. 也许你的IP被墙了 + + + +#### 安装应用时提示`cannot connect to the Docker daemon` + +1. 请确保你的 Linux 版本符合要求 +2. 请确保一定要先安装 BBR 再安装应用,如果你不幸搞错了顺序,参考下一条 +3. 尝试在终端的快捷命令中点击 `Start Docker` 手动启动下 Docker 或者启动任意一个应用 + + + +#### 安装应用时提示 `i686 not recognized platform` + +- 系统必须是64位(X86-64)Linux系统 +- 虚拟化方式不支持 OpenVZ + + + +#### 安装应用时提示`Bind for ** failed:port is already allocated.` + +* 端口重复了,不同的应用、进程不能使用同一个端口 + + + +#### 安装应用时提示`sudo: no tty present and no askpass program specified` + +- 你需要修改 `sudo` 配置文件允许当前用户无密码运行 `sudo` + + + +#### 安装应用时提示冲突如下`Error response from daemon: Conflict. The container name * is already used by container ....` + +* 应用已经安装过了,更新了配置要点击“更新配置” + + + +#### 安装应用时提示`docker command not found` + +1. 确保你 VPS 的操作系统支持 Docker。 +2. HyperApp 会自动安装 Docker,出现这类问题可能是 Docker 安装失败,你可以手动执行以下命令安装最新docker + +``` +curl -fsSL get.docker.com | sh +``` + + + +#### 如果先安装了`docker`再安装`bbr`导致无法启动`docker`怎么办? + +* 执行以下命令清除docker网络配置.然后重新安装所有应用即可. + +``` +rm -rf /var/lib/docker/aufs +``` + + + +#### 操作Docker时提示权限不足(`Permission Denied`) + +* 原因:当前用户没有docker权限,加到docker组才有,执行命令 + +``` +sudo usermod -aG docker $USER +``` + + + +#### 安装应用时安装失败提示`overlay`已满 + +* 原因:已安装或者曾经安装过的应用太多,因为Docker自身的机制,删除容器并不会删除镜像,久而久之硬盘可能会被塞满 + +* 直接执行以下命令确认没有问题后输入Y进一步执行即可完成空间回收. + +``` +docker system prune --all --volumes +``` + diff --git a/zh/README.md b/zh/README.md index 7717b50..18f9c7a 100644 --- a/zh/README.md +++ b/zh/README.md @@ -17,9 +17,9 @@ HyperApp 还集成了 LetsEncrypt SSL 证书功能,几乎可以为全部应用 * [在 Twitter 上关注 HyperApp](https://twitter.com/LoveHyperApp) * [在 GitHub 上的此教程仓库](https://github.com/waylybaye/HyperApp-Guide) + ## 文档使用办法 -* 新手入门推荐从此教程开始:[手把手爱国教程](proxy/get-started.md) * 如果你在使用中遇到问题,请参考 [HyperApp 排错索引](faq.md) @@ -45,7 +45,3 @@ HyperApp 还集成了 LetsEncrypt SSL 证书功能,几乎可以为全部应用 **为什么不支持 OpenVZ ?** 因为 OpenVZ 支持的内核版本太低,不支持 Docker 所以,HyperApp 不支持 OpenVZ 的主机。 - - -**HyperApp 会在我的服务器/路由器上运行哪些命令?** -[HyperApp 运行的命令](../commands.md) diff --git a/zh/SUMMARY.md b/zh/SUMMARY.md index 9944205..d2fbe23 100644 --- a/zh/SUMMARY.md +++ b/zh/SUMMARY.md @@ -1,60 +1,33 @@ * [HyperApp 介绍](README.md) - * [常见错误指引](faq.md) - * [如何使用 URL Scheme](workflow.md) - * [⭐️ 手把手爱国教程](proxy/get-started.md) + * [常见问题](faq.md) + * [常见安装错误](FAQ-Error.md) + * [常见应用问题](FAQ-App.md) + * [如何使用 URL Scheme](Config/Workflow.md) * 如何添加服务器: - * [Vultr](vendors.md#vultr) - * [Linode](vendors.md#linode) - * [Bandwagon](vendors.md#bandwagon搬瓦工) - * [~~如何添加 GCE 和 AWS 的服务器 (已过期)~~](Add-Sever-Cloud.md) -* 应用教程 - * [如何自动生成 SSL 证书](SSL.md) - * [使用certbot 更加简单的生成 SSL证书](developer/certbot.md) - * [如何搭建 MySQL/WordPress/Ghost/ownCloud 等支持 https 的网站](Get-Started.md) - * [Jekyll 和 Hugo 的使用](static-site.md) - * [Minecraft服务器](RD_MinecraftServerBuilding.md) - * [Telegram Web 搭建教程](telegram-web.md) - * [Rocket.Chat 搭建教程](rocket-chat.md) - * [Syncthing 搭建教程](syncthing.md) - * [Nextcloud 搭建教程](nextcloud.md) - * [NodeBB论坛 搭建教程](nodebb.md) - * [WordPress搭建教程](wordpress.md) - * [搭建Huginn构建自动化信息流](huginn.md) - * [搭建精美H5AI文件服务器](h5ai.md) - * [搭建精美强大Grafana监控系统](monitor.md) -* 爱国软件 - * [❤️ LoveBundle 爱国套件](proxy/love-bundle.md) - * [如何选择主机商和爱国软件?(未完)](proxy/GFW.md) - * [SSR](proxy/SSR.md) - * [V2Ray](proxy/V2Ray.md) - * [Shadowsocks-libev](proxy/ss-libev.md) - * [Cisco AnyConnect](proxy/ocserv.md) - * [nghttpx (HTTP2) + TLS](proxy/nghttpx.md) - * [使用 kcptun 加速](proxy/kcptun.md) - * [Pipesocks 教程](proxy/Pipesocks.md) - * [联通客户端检测](proxy/unicom.md) - * [SSPANEL轻松搭建教程](proxy/panel.md) - * [V2Ray完美混淆教程(内含全平台客户端配置教程)](proxy/V2ray+Websocket.md) -* [商店应用配置](Apps.md) - - [Huginn: 打造自己的IFTTT服务](Apps.md#huginn) - - [CloudTorrent部署教程](Bt.md) - - [使用Hugo搭建惊艳个人博客](Hugo.md) - - [免爱国Telegram-Web部署教程](telegram.md) - - [Flarum: 一个漂亮的论坛应用](Apps.md#flarum) - - [EFB: 接收微信消息并转发到 Telegram](Apps.md#efb) - - [Thunder xware: 迅雷远程下载](Apps.md#thunder-xware) -* 用户贡献的文档 - - [Smartsocks使用帮助](Smartsocks-help.md) - - [免费获得个人专享顶级域名](Get-Domain.md) - - [使用HyperApp简单的搭建和管理自己的Minecraft服务器](RD_MinecraftServerBuilding.md) -* Docker Image - * [Docker Image介绍](advanced/docker-image-introduction.md) - * [Pydio搭建教程](pydio.md) - * [Docker Image 手动配置 v2ray](advanced/docker-image-v2ray.md) - * [超简单搭建免翻墙Google搜索](google.md) - * [搭建HACK·CHAT即时通信平台](chat.md) - * [内网穿透服务otunnel架设](otunnel.md) - * [搭建个人专享2048在线小游戏](2048.md) -* 系统教程 - * [CentOS 如何手动升级 Docker 版本](centos-upgrade-docker.md) - * [阿里云 Docker 加速](Aliyun-docker.md) + * [Vultr](Config/Vendors.md#vultr) + * [Linode](Config/Vendors.md#linode) + * [Bandwagon](Config/Vendors.md#bandwagon搬瓦工) + * [如何添加 macOS](Config/Add_mac.md) +* [商店应用配置](Deprecated/Apps.md) + - [使用 Certbot 自动获取可信 SSL 证书 (LetsEncrypt)](Store/certbot.md) + - [VPS 上搭建高速 BT 下载服务](Store/cloud-torrent.md) + - [搭建Huginn构建自动化信息流](Store/huginn.md) + - [使用Hugo搭建惊艳个人博客](Store/hugo.md) + - [使用HyperApp简单的搭建和管理自己的Minecraft服务器](Store/minecraft.md) + - [Nextcloud 教程](Store/nextcloud.md) + - [NodeBB 教程](Store/nodebb.md) + - [Rocket Chat 教程](Store/rocket-chat.md) + - [如何使用域名访问并自动生成可信的 SSL 证书](Store/SSL.md) + - [Syncthing 教程](Store/syncthing.md) + - [WordPress搭建教程](Store/wordpress.md) + +* 自定义镜像教程 + * [Docker Image介绍](Custom/docker-image-introduction.md) + * [Pydio搭建教程](Custom/pydio.md) + * [搭建HACK·CHAT即时通信平台](Custom/chat.md) + * [内网穿透服务otunnel架设](Custom/otunnel.md) + * [搭建个人专享2048在线小游戏](Custom/2048.md) + * [搭建精美H5AI文件服务器](Custom/h5ai.md) + * [搭建精美强大Grafana监控系统](Custom/monitor.md) + * [自建网页版speedtest测速教程](Custom/speedtest.md) + * [搭建filemanager超轻量私人云盘](Custom/filemanager.md) diff --git a/zh/SSL.md b/zh/Store/SSL.md similarity index 98% rename from zh/SSL.md rename to zh/Store/SSL.md index fcb4fed..79b1f0f 100644 --- a/zh/SSL.md +++ b/zh/Store/SSL.md @@ -14,7 +14,7 @@ 如果要自动生成域名的 SSL 证书则需要配合 `Nginx Proxy` 和 `Nginx SSL Support` 来进行,因为 LetsEncrypt 需要回访你的域名确认你拥有这个域名的所有权。所以在进行下面的操作前,你需要先将需要生成证书的域名解析到你的服务器上。否则无法验证就不能生成证书。 -![配置Nginx截图](../images/get-start/nginx-bundle.png "配置 Nginx 和 SSL") +![配置Nginx截图](../../images/get-start/nginx-bundle.png "配置 Nginx 和 SSL") ### 安装 Nginx Proxy diff --git a/zh/developer/certbot.md b/zh/Store/certbot.md similarity index 88% rename from zh/developer/certbot.md rename to zh/Store/certbot.md index 763339a..fcd90ca 100644 --- a/zh/developer/certbot.md +++ b/zh/Store/certbot.md @@ -9,7 +9,7 @@ ## HyperApp 应用配置 - + * Domain: 填入你想获取证书的域名,多个域名用英文逗号分隔开 * Email: 您的邮箱 @@ -36,3 +36,11 @@ 等到 90 天你的证书快到期时,LetsEncrypt 会向你发送通知邮件,这时候只要找到这个应用再启动一下就可以了,会自动更新证书! +### 申请频率限制 + +注册IP限制:每IP每3个小时不超过10次 + +域名数量限制:每个域名(包含子域名)每7天不超过5个 + + + diff --git a/zh/Store/cloud-torrent.md b/zh/Store/cloud-torrent.md new file mode 100644 index 0000000..e24e3e6 --- /dev/null +++ b/zh/Store/cloud-torrent.md @@ -0,0 +1,52 @@ +# VPS 上搭建高速 BT 下载服务 + + +> **很多人觉得自己的 VPS 空着也是空着不如拿来发挥点余热.于是今天就给带来一篇在 VPS 上跑起来轻量化 BT 离线工具 Cloud-Torrent 的教程.** + + +## 更新记录 + +* 2017.10.12:增加了用法部分.并且增加了对502错误的解决方法 +* 2017.10.02:增加了联合h5ai的部分 + + +## 准备工作 + +* **运行了HyperApp的ios设备** +* **一台VPS** + + + +## HyperApp配置 + +* **如果追求简单.直接通过ip+端口的形式就能访问的话参考如下配置**![bt-1](../../images/bt-1.jpg) +* **如果追求可以通过域名来访问的话.参考如下配置**![bt-2](../../images/bt-2.jpg) +* **注意方式一中端口可以自定义.** +* **注意方式二中一定要设置一个端口.Port和Nginx选项中应用端口要设置一个相同的不跟别的冲突的端口.建议34567.否则会报错502.** + + + +## 服务器配置 + +1. **我们现在登录ip:端口或者你给`Cloud-Torrent`绑定的域名.就可以来到这样一个界面.** + +![bt-3](../../images/bt-3.jpg) + +2. **先不要着急添加磁链或者BT开始下载.设置之前是没有速度的.先设置这个.![bt-4](../../images/bt-4.jpg)** +3. **save了之后基本上就可以了.看不懂的选项就不去动他.** +4. **对于需要更高速度更高稳定性表现的.请自行添加tracker list.这里给一个连接** + + * ` https://github.com/ngosang/trackerslist/` + +## 联合H5AI + + +## 用法 + +- **下载完成之后.点击文件名即可下载.点击后面播放按钮即可播放** +- **在输入框中填你要搜索的资源.然后选择搜索源(默认海盗湾)搜索即可在线搜索种子并下载.** + + + + + diff --git a/zh/huginn.md b/zh/Store/huginn.md similarity index 73% rename from zh/huginn.md rename to zh/Store/huginn.md index 5ff2bec..b811653 100644 --- a/zh/huginn.md +++ b/zh/Store/huginn.md @@ -2,7 +2,6 @@ > Huginn是一个神器,见到它有一种相见恨晚的感觉,我们都知道IFTTT是一个信息的触发器,可以用来建立自动的工作流。而Huginn是IFTTT的加强版,几乎可以将所有的信息进行重组、变形、输出,真正做信息的主人。 -## 本文原文地址 https://vinga.fun/huginn ## 准备工作 @@ -15,15 +14,15 @@ 1. wordpress的必选依赖为`PostgreSQL`和`MariaDB`. 可选依赖为`Nginx Proxy`以及`Nginx SSL Support`.如果不选用这两个.需要配置Port.然后通过 http://VPS的IP:端口 来访问.本教程默认已经正确安装并启动这两者. 2. 按照下图对`PostgreSQL`以及`MariaDB`进行设置.注意除了有中文提示的选项.其他都应该保持跟图片一致以免出错. - ![](./images/huginn-1.jpg) + ![](../../images/huginn-1.jpg) 3. 设置完成之后选择保存配置并安装即可. - + ## Huginn服务端部署 1. 按照下图对`Huginn`服务端进行设置.注意除了有中文提示的选项.其他都应该保持跟图片一致以免出错. - - ![](./images/huginn-2.jpg) + + ![](../../images/huginn-2.jpg) 2. 设置完成之后选择保存配置并安装即可. @@ -31,19 +30,12 @@ * 注意.部署完启动访问域名可能会提示502.请稍等一会.`Huginn`的启动需要时间.五分钟之后尚且报错才考虑启动失败. * 初始登录用户名为`admin`密码为`password` - + ## 大功告成! * 现在.去访问你的`Huginn`吧:) * 这里放一个已经部署成功的截图:) - ![](./images/huginn-3.jpg) - - -## 写在最后 + ![](../../images/huginn-3.jpg) + - * 写了这么久.如果能有所收获那就是我最大的荣幸了:) - * 如果可以的话.可以关注一下 https://vinga.fun 这是我的私人博客地址:) - * 如有问题可发邮件至我邮箱fanalcest@gmail.com联系或telegram@fanvinga - - banner diff --git a/zh/Hugo.md b/zh/Store/hugo.md similarity index 78% rename from zh/Hugo.md rename to zh/Store/hugo.md index f894604..1c3e8af 100644 --- a/zh/Hugo.md +++ b/zh/Store/hugo.md @@ -3,9 +3,12 @@ **大家好,我是VINGA :)今天为大家介绍Hugo这个静态页面生成引擎并且带来一篇简洁可行的搭建博客的教程.本博客就是使用Hugo来进行搭建的,并且托管在自己的私人VPS上.** -* **本文原文链接https://vinga.fun/hugo** +## 文章更新记录: + +* 2017.7.27:增加了rsync作为文件上传的方法. + ## 前言介绍 @@ -45,21 +48,21 @@ 2. **使用命令`brew install hugo`安装Hugo** 3. **使用命令`hugo new site Mysite`新建一个叫做Mysite的网站.这时候在当前目录已经能看见当前目录出现了一个叫做Mysite的目录.里面有一些Hugo的文件** -![hugo-1](./images/hugo-1.png) +![hugo-1](../../images/hugo-1.png) -4. **先去网上寻找一个你满意的主题.为什么要这么做呢.因为hugo默认并没有主题.没有主题的话hugo是不能生生成页面的.https://themes.gohugo.io/ 这是hugo官方的主题仓库的链接.找到喜欢的就进去选择download.会跳转到一个Github的界面.一般来说在readme里面都会有提示怎么安装的.本教程采用docdock主题来举例.链接为https://github.com/vjeantet/hugo-theme-docdock** +4. **先去网上寻找一个你满意的主题.为什么要这么做呢.因为hugo默认并没有主题.没有主题的话hugo是不能生生成页面的. https://themes.gohugo.io/ 这是hugo官方的主题仓库的链接.找到喜欢的就进去选择download.会跳转到一个Github的界面.一般来说在readme里面都会有提示怎么安装的.本教程采用docdock主题来举例.链接为 https://github.com/vjeantet/hugo-theme-docdock** 5. **执行命令`cd themes`进入主题文件夹** -6. **执行命令`git clone https://github.com/vjeantet/hugo-theme-docdock.git docdock`来下载docdock主题.** +6. **执行命令`git clone https://github.com/vjeantet/hugo-theme-docdock.git docdock`来下载docdock主题.** 7. **我们进去docdock目录看一看都有什么东西.图中就是主题的构成.我们要做的是进入exampleSite文件夹.把里面的所有文件复制的最早的Mysite文件夹里面.注意要选替换选项** -![hugo-2](./images/hugo-2.png) +![hugo-2](../../images/hugo-2.png) 8. **有个事情要注意一下.我们要把themes目录里面的docdock改一下名字.改成`hugo-theme-docdock`并且把config.toml里面`themesdir = "../.."`删掉(此处神坑)** 9. **接下来我们就可以启动hugo来一看究竟了.使用`cd ..`命令可以返回上级目录.一直返回到Mysite目录并且执行`hugo server `启动本地hugo服务器.** 10. **看到提示.这时候hugo server已经启动并且地址是`localhost:1313`.我们去访问看看.一个漂亮的页面就这样展现在我们面前** -![hugo-3](./images/hugo-3.png) +![hugo-3](../../images/hugo-3.png) @@ -73,7 +76,7 @@ 1. **请先确认你已经采用正确的设置安装了Nginx Proxy和Nginx SSL Support这两个应用** 2. **打开hyperapp.切换到商店选项卡.找到Hugo这个应用并且选择创建应用.按照图片中的选项来填写** -![hugo-4](./images/hugo-4.png) +![hugo-4](../../images/hugo-4.png) 3. **保存安装.这时候会显示安装成功.但是会显示restart xxxx.这是因为我们还没有把相关的文件上传到服务器.** @@ -81,29 +84,28 @@ ## 上传文件 -1. **建议使用压缩的方法.使用命令`scp -P 你的ssh端口 你的Mysite.zip的路径 你的登录用户名@你的服务器地址:/srv/docker`来把Mysite上传到服务器的`/srv/docker`目录下面.执行使用`unzip Mysite.zip && mv Mysite Hugo`命令** -2. **回到hyperapp.对Hugo执行更新配置操作** +1. **rsync方法:本地执行命令`rsync -av --delete -e 'ssh -p 你的ssh端口默认22' ~/desktop/放到桌面的Mysite文件夹名字/ VPS用户名@VPS地址:/srv/docker/Hugo/`** +2. **压缩方法:使用命令`scp -P 你的ssh端口 你的Mysite.zip的路径 你的登录用户名@你的服务器地址:/srv/docker`来把Mysite上传到服务器的`/srv/docker`目录下面.执行使用`unzip Mysite.zip && mv Mysite Hugo`命令** +3. **回到hyperapp.对Hugo执行更新配置操作** ## 大功告成 * **现在访问你的域名吧!** - +* **我的博客所在VPS用的一个提供廉价CN2线路的IDC,有需要的话可以联系我索要推荐链接.双方都有收益.** ## 注意事项 -* **如果要添加文章.有两种方法.第一个是使用`hugo new example.md`.另外一个是直接把md文件放到content目录下面.然后参照已经存在的md文件修改顶部的显示设置.这部分请自行摸索.使用hugo new命令创建新文章的话.默认是content目录.要放到content目录下面的example目录的话执行`hugo new example/example.md` ** +* **如果要添加文章.有两种方法.第一个是使用`hugo new example.md`.另外一个是直接把md文件放到content目录下面.然后参照已经存在的md文件修改顶部的显示设置.这部分请自行摸索.使用hugo new命令创建新文章的话.默认是content目录.要放到content目录下面的example目录的话执行`hugo new example/example.md`** * **要修改主题的话.请自行阅读主题github的readme网站.** * **不只是官方主题仓库才有hugo仓库下载.请自行查找.安装方法基本类似** -## 写在最后 -* **写了这么久.如果能有所收获那就是我最大的荣幸了:)** -* **如果可以的话.可以关注一下 https://vinga.fun 这是我的私人博客地址:)** -* **如有问题可发邮件至我邮箱联系或telegram@fanvinga** + + diff --git a/zh/RD_MinecraftServerBuilding.md b/zh/Store/minecraft.md similarity index 84% rename from zh/RD_MinecraftServerBuilding.md rename to zh/Store/minecraft.md index 7dc35d2..9359a11 100644 --- a/zh/RD_MinecraftServerBuilding.md +++ b/zh/Store/minecraft.md @@ -13,13 +13,13 @@ 1. 首先我们打开自己的HyperApp,然后从`商店`中找到MinecraftServer. - ![hyperApp_shop](../images/RD_MinecraftServerBuilding/HYPERAPP_SHOP.png) + ![hyperApp_shop](../../images/RD_MinecraftServerBuilding/HYPERAPP_SHOP.png) 2. 选中自己的服务器,并创建应用 - ![hyperApp_Choose_Server](../images/RD_MinecraftServerBuilding/HYPERAPP_CHOOSE_SERVER.png) + ![hyperApp_Choose_Server](../../images/RD_MinecraftServerBuilding/HYPERAPP_CHOOSE_SERVER.png) 3. 此时会进入一个比较基本的服务器配置界面,从上至下分别为 - ![hyperApp_Server_Config_I](../images/RD_MinecraftServerBuilding/HYPERAPP_SERVER_CONFIG_I.png) + ![hyperApp_Server_Config_I](../../images/RD_MinecraftServerBuilding/HYPERAPP_SERVER_CONFIG_I.png) > ###### 配置 ``` @@ -61,10 +61,10 @@ Public Port —— 服务器端口 (链接服务器时使用的端口) 4. 本教程中,我们采用 `生存模式`+`简单难度` 的默认配置,点击下一步,会从自己的应用目录中看到创建好的应用,默认状态应该是**尚未安装**。 - ![hyperApp_Ready](../images/RD_MinecraftServerBuilding/HYPERAPP_READY.png) + ![hyperApp_Ready](../../images/RD_MinecraftServerBuilding/HYPERAPP_READY.png) 5. 点击方框弹出选项,选择安装 - ![hyperApp_Ready](../images/RD_MinecraftServerBuilding/HYPERAPP_ACTIONSHEET.png) + ![hyperApp_Ready](../../images/RD_MinecraftServerBuilding/HYPERAPP_ACTIONSHEET.png) 6. 等待应用安装完成之后,此时的状态应该显示为 **up xxx seconds** ,即服务运行了多长时间 > 到这一步,你的Minecraft的服务器就已经架设完成了,此时如果使用的是正版的Minecraft,就已经能链接服务器开始玩了,但是很多玩家使用的并不是正版MC,所以接下来将会告诉你如何使用GCP的Web管理终端来进行一些重要的配置,从而让盗版游戏也能链接到自己的服务器。 @@ -80,48 +80,48 @@ Public Port —— 服务器端口 (链接服务器时使用的端口) 1. 首先访问自己的[实例管理页面](:https://console.cloud.google.com/) 2. 选择自己的VM实例 -![GCP_VM](../images/RD_MinecraftServerBuilding/GCP_VM.png) +![GCP_VM](../../images/RD_MinecraftServerBuilding/GCP_VM.png) 3. 在浏览器窗口中打开SSH -![GCP_open_ssh](../images/RD_MinecraftServerBuilding/GCP_OPEN_SSH.png) +![GCP_open_ssh](../../images/RD_MinecraftServerBuilding/GCP_OPEN_SSH.png) 4. 经过短(实际上看网络状态)时间的等待之后,你会看见这个页面 -![ssh_login](../images/RD_MinecraftServerBuilding/GCP_SSH_LOGIN.png) +![ssh_login](../../images/RD_MinecraftServerBuilding/GCP_SSH_LOGIN.png) 5. 此时,我们**可以**使用root身份来进行后续操作,**也可以**在必要的时候进行`$ sudo`操作,本教程中,将会使用root身份进行操作 6. 首先我们使用命令 `$ sudo -i`进入root身份,此时可以注意到终端变化 -![ssh_sudo_i](../images/RD_MinecraftServerBuilding/GCP_SSH_SUDO_I.png) +![ssh_sudo_i](../../images/RD_MinecraftServerBuilding/GCP_SSH_SUDO_I.png) 7. 然后我们进入Minecraft的服务器存放目录,由于使用的是默认配置,所以命令应该是一样的. $ cd /.. $ cd srv/docker/Minecraft-Server/ 8. 此时我们就已经进入了Minecraft服务器的目录,通过`$ ls`命令,可以看到服务器有这些文件 -![ssh_ls](../images/RD_MinecraftServerBuilding/GCP_SSH_LS.png) +![ssh_ls](../../images/RD_MinecraftServerBuilding/GCP_SSH_LS.png) 9. 我们需要配置的文件是`server.properties`,在这里,使用`vim`命令来编辑这个文件 (使用`vim`完全是因为我觉得这个比较顺手,如果有编程基础知道其他命令的并不一定要用`vim`) $ vim server.properties 10. 此时终端会进入`vim`模式,应该显示成这样 -![vim](../images/RD_MinecraftServerBuilding/GCP_SSH_VIM.png) +![vim](../../images/RD_MinecraftServerBuilding/GCP_SSH_VIM.png) 11. 如果想使用盗版MC链接服务器,那么服务器需要关闭正版验证,在键盘上按下`i`键进入`INSERT`模式,注意低端文字的变化 -![vim_insert](../images/RD_MinecraftServerBuilding/GCP_SSH_VIM_INSERT.png) +![vim_insert](../../images/RD_MinecraftServerBuilding/GCP_SSH_VIM_INSERT.png) 12. 我们需要修改的地方是这里,将`online-mode=`的`TRUE`更改为`false`来关闭正版验证,用`方向键`移动光标,把 -![vim_onlinemode_ture](../images/RD_MinecraftServerBuilding/GCP_SSH_VIM_ONLINEMODE_TRUE.png) +![vim_onlinemode_ture](../../images/RD_MinecraftServerBuilding/GCP_SSH_VIM_ONLINEMODE_TRUE.png) 改成 -![vim_onlinemode_false](../images/RD_MinecraftServerBuilding/GCP_SSH_VIM_ONLINEMODE_FALSE.png) +![vim_onlinemode_false](../../images/RD_MinecraftServerBuilding/GCP_SSH_VIM_ONLINEMODE_FALSE.png) 13. 按下键盘上的`ESC`键,并输入`:wq`来保存,并退出编辑器 -![vim_quit](../images/RD_MinecraftServerBuilding/GCP_SSH_VIM_WQ.png) +![vim_quit](../../images/RD_MinecraftServerBuilding/GCP_SSH_VIM_WQ.png) 14. 此时我们的终端配置就完成了,输入`$ exit`退出root身份,此时会显示`logout`,然后再次输入`$ exit`来退出编辑 -![ssh_logout](../images/RD_MinecraftServerBuilding/GCP_SSH_LOGOUT.png) +![ssh_logout](../../images/RD_MinecraftServerBuilding/GCP_SSH_LOGOUT.png) > 退出编辑之后窗口会自动关闭,此时web终端的管理就结束了。初级教程中不对server.properties进行过多介绍。 ### 利用HpyerApp重启服务器,并应用新的配置 @@ -130,7 +130,7 @@ Public Port —— 服务器端口 (链接服务器时使用的端口) 1. 首先我们选择`应用`里面的服务器,然后点开菜单 -![hyperapp_reboot](../images/RD_MinecraftServerBuilding/HYPERAPP_ACTIONSHEET.png) +![hyperapp_reboot](../../images/RD_MinecraftServerBuilding/HYPERAPP_ACTIONSHEET.png) 2. 选择`重启`,然后等待重启完毕即可 ### 其他事项 diff --git a/zh/nextcloud.md b/zh/Store/nextcloud.md similarity index 90% rename from zh/nextcloud.md rename to zh/Store/nextcloud.md index a0dce08..2582d18 100644 --- a/zh/nextcloud.md +++ b/zh/Store/nextcloud.md @@ -29,7 +29,7 @@ - Mysql 配置完成后如下: - + ### Nextcloud 设置: @@ -61,7 +61,7 @@ 全部填写好的示意图如下: - + ## 防火墙配置 @@ -97,11 +97,11 @@ sudo ufw allow 443 ``` - + 等待初始化完成后,用刚刚创建的账户登陆进去即可。 - + 大功告成! @@ -121,21 +121,21 @@ sudo ufw allow 443 在server address中填写你的域名,然后点击下一步 - + 然后输入刚才创建的用户名和密码 - + 然后上面选择相关的设置参数,比如同步大小到多大时通知用户,默认500M,按照自己需求设置,下面选择本地文件夹,选好之后点击完成。 - + - 此时配置完成,客户端会最小化到任务栏同时可以看到客户端和云端已经可以看到开始了自动同步,你可以打开所设置的本地文件夹,在里面放一个文件,它便会自动同步到云端。 大功告成。 - + ## 后续配置 @@ -147,7 +147,7 @@ sudo ufw allow 443 在代理设置(Proxy Settings)中 选择"手动指定代理"(Specify proxy manually as)为 "socks5" "Host"填写"127.0.0.1",右侧的方框是填写端口的,一般填写"1080" ``` - + 然后代理即设置完毕,点击关闭即可。 diff --git a/zh/nodebb.md b/zh/Store/nodebb.md similarity index 91% rename from zh/nodebb.md rename to zh/Store/nodebb.md index b45f6f5..9ba7d67 100644 --- a/zh/nodebb.md +++ b/zh/Store/nodebb.md @@ -18,7 +18,7 @@ B`,它们三个的参数不需要变动。(如果之前已经安装了则可 Nginx相关的配置不再赘述,下面贴出MongoDB的配置图 - + ### 配置NodeBB @@ -49,7 +49,7 @@ Nginx相关的配置不再赘述,下面贴出MongoDB的配置图 全部填写好的示意图如下: - + ## 防火墙配置 @@ -71,11 +71,11 @@ sudo ufw allow 443 BodeBB主页面如下 - + 我们右上角登陆后随便点击一个帖子 - + ## 注意 diff --git a/zh/rocket-chat.md b/zh/Store/rocket-chat.md similarity index 93% rename from zh/rocket-chat.md rename to zh/Store/rocket-chat.md index fa810de..f387b1a 100644 --- a/zh/rocket-chat.md +++ b/zh/Store/rocket-chat.md @@ -30,7 +30,7 @@ Rocket.Chat是使用Meteor框架做的开源消息应用。它支持视频会议 全部填写好的示意图如下: - + ## 防火墙配置 @@ -50,7 +50,7 @@ sudo ufw allow 443 打开浏览器,键入你的域名,回车即可看到Rocket.Chat的页面,注册好之后进如即可开始聊天。 - + 大功告成! diff --git a/zh/syncthing.md b/zh/Store/syncthing.md similarity index 92% rename from zh/syncthing.md rename to zh/Store/syncthing.md index 096293d..54c14aa 100644 --- a/zh/syncthing.md +++ b/zh/Store/syncthing.md @@ -15,7 +15,7 @@ Nginx设置如下: - + - 首先打开HyperApp在应用中找到Syncthing,填写相关配置: @@ -40,7 +40,7 @@ Nginx设置如下: ``` 全部填写好的示意图如下: - + ## 防火墙配置 @@ -68,7 +68,7 @@ chmod -R o+w /srv/docker/syncthing 打开浏览器,键入你的域名,回车即可看到syncthing的页面,进行相关设置后即可使用。 - + 大功告成! diff --git a/zh/wordpress.md b/zh/Store/wordpress.md similarity index 69% rename from zh/wordpress.md rename to zh/Store/wordpress.md index 77a2b68..7958004 100644 --- a/zh/wordpress.md +++ b/zh/Store/wordpress.md @@ -3,7 +3,6 @@ > 之前写过一篇Hugo个人博客部署的教程.那是一个轻量化的选择.今天就给大家带来以丰富插件著称的WordPress的搭建教程 -### 本文原文链接为 [wordpress](https://vinga.fun/wordpress) ## 准备工作 @@ -16,7 +15,7 @@ 1. **wordpress的必选依赖为MySQL或MariaDB.可选依赖为Nginx Proxy以及Nginx SSL Support.如果不选用这两个.需要配置Port.然后通过`https://VPS的IP:端口`来访问.本教程默认已经正确安装并启动这两者.** 2. **按照下图对MariaDB以及WordPress进行部署.左一为MariaDB.左二三为WordPress.有中文提示的按提示修改.没有的保持一致.** - ![](./images/wordpress-2.jpg) + ![](../../images/wordpress-2.jpg) 3. **部署完成之后选择保存配置并安装即可.注意.安装顺序为先部署MariaDB并安装启动之后再部署WordPress!** ## 登录域名进行WordPress后台配置 @@ -25,18 +24,13 @@ 2. **其次会对管理者以及网站信息进行设置.自己决定** 3. **设置完会返回成功.这时候登录即可** 4. **进去之后会提示要更新.按照提示确定更新.刷新一下回到主页就更新完了** - ![](./images/wordpress-1.jpg) + ![](../../images/wordpress-1.jpg) ## 大功告成! * 这里放一个美美哒的截图.~~Hugo大法好~~ - ![](./images/wordpress-3.jpg) + ![](../../images/wordpress-3.jpg) -## 写在最后 -* **写了这么久.如果能有所收获那就是我最大的荣幸了:)** -* **如果可以的话.可以关注一下 https://vinga.fun 这是我的私人博客地址:)** -* **如有问题可发邮件至我邮箱fanalcest@gmail.com联系或telegram@fanvinga** -banner diff --git a/zh/advanced/docker-image-v2ray.md b/zh/advanced/docker-image-v2ray.md deleted file mode 100644 index 1001ca1..0000000 --- a/zh/advanced/docker-image-v2ray.md +++ /dev/null @@ -1,31 +0,0 @@ -# Docker-image 部署 v2ray - -本次教程介绍如何使用HyperApp中的DockerImage应用搭建V2ray,以实现自由度更大的配置方式。 - -我们先从 [DockerHub](https://hub.docker.com/) 通过搜索找到 V2ray 官方提供的镜像, 链接[在此](https://hub.docker.com/r/v2ray/official/)。我们可以发现,镜像名为v2ray,点击网页中的"tag"可以看出标签为`latest` ,我们将这两个值其复制下来回到`DockerImage`中的`Image`出粘贴,即`v2ray:latest` - -在此之前,你需要在 /etc 目录下新建一个文件夹 v2ray, 并把你的配置写好后命令为 config.json 放入 v2ray 文件夹内。此处根据需求假设 -``` -设定的端口号为8888,需要映射到宿主机的8888端口上 -需要把宿主机的/etc/v2ray文件夹映射到Docker中 -``` -以上需求转换为"Option"中的命令就是 - -``` --v /etc/v2ray:/etc/v2ray -p 8888:8888 -``` -把上面的一段填入DockerImage中的`Option`中 - -然后根据V2ray官方Docker的说明可以得知 - -``` -命令为 v2ray -参数为 -config /etc/v2ray/config.json -``` -将其分别填入DockerImage中的`Command`和`Args`中 - -全部填好之后如下: - - - -之后的使用和其他HyperApp中的App类似。 diff --git a/zh/chat.md b/zh/chat.md deleted file mode 100644 index 269db34..0000000 --- a/zh/chat.md +++ /dev/null @@ -1,45 +0,0 @@ -# 搭建HACK·CHAT即时通信平台 - -> 有时你需要临时发送一些比较隐私的东西.又不想直接在聊天软件中直接发送.这时候维护一个轻量的即时通信平台就派上用场了.只要在url后面随便加上一个单词就能创建你的会话.非常方便. - -## 本文原文地址 https://vinga.fun/chat - -## 更新记录 - -* 2017.09.08: 修复了一个地址拼凑错误.如果部署不能用的.请pull一下最新的image.抱歉抱歉😂😂 - -## 准备 - -* **Hyperapp** -* **一个已经解析正确的域名(ping验证)** -* **耐心.仔细.认真** - -#### 到Hyperapp进行设置 - -1. **转到商店页面.找到Docker Image然后选择服务器并且保存进入配置界面** -2. **请完全按照下图配置进行填写!** - ![](./images/chat-1.jpg) -3. **保存并且进行安装.请确保这时候Nginx Proxy以及Nginx SSL Support正常默认安装并且启动了** - -## 大功告成 - -* **这时候去访问你的域名吧٩(˃̶͈̀௰˂̶͈́)و** - -## 排错指引 - -* **如果点进去频道发现不能出来填写用户名的提示.即代表连接失败.按照以下步骤排查问题** - * **首先先`pull image`到最新镜像** - * **清除浏览器的缓存(可能缓存了错误的client.js)** - * **稍等一会等hyper的nginx把证书完全签发下来.因为链接过程会用到证书** - - -## 吐槽一下 -* **说实在的这个docker..可能是我做过的坑最多的..不说别的..官方源码clone下来不能用你敢信🤦‍♂️为了只开放一个端口.并且用上https.我在docker内部封了一个nginx作为websocket的转发代理.希望大家用的开心** - -## 写在最后 - -* 写了这么久.如果能有所收获那就是我最大的荣幸了:) -* 如果可以的话.可以关注一下 https://vinga.fun 这是我的私人博客地址:) -* 如有问题可发邮件至我邮箱fanalcest@gmail.com联系或telegram@fanvinga - -banner diff --git a/zh/contribute.md b/zh/contribute.md deleted file mode 100644 index 4758876..0000000 --- a/zh/contribute.md +++ /dev/null @@ -1,68 +0,0 @@ -# 文档贡献奖励计划 - -开发者精力有限,很难有时间添加各类相关的文档,但是文档对于新手来说又是不可或缺的,为了完善 HyperApp 相关的文档,开发者决定凡是参与编写文档的贡献者均赠送至少一枚 HyperApp 兑换码作为感谢。具体所需要添加的文档以及要求请看下文。 - -先Fork本仓库,编写文章完成后,提交PR到主仓库。文章版权归贡献者所有,但自动授予开发者在 HyperApp 相关的文档、社交账号里任意修改、发布的权利。 - - -### 文档格式 - -需要是图文教程,每一步都要有截图。 - -1. 统一使用 `Markdown` 文件,请参阅 [Github 官方的 Mastering Markdown](https://guides.github.com/features/mastering-markdown/) -1. 不要更改 README 首页文件,我会在首页添加链接 -2. 文档要放在各语言子目录下面,比如中文的要放在 `zh` 目录下面,同时按功能放入子目录中(参见下面各个分类的要求) -3. 图片放在同级目录的 `images` 目录里。名字按照 `文档名字 - 图片名字` 或者 `文档名字 - 图片序号` -4. 截图尽量使用手机截图,如果网站没有适配手机版可以使用PC版截图。引用图片使用相对路径 比如 `![](./images/xxx.png)` - -## 任务列表 - - -### 厂商使用教程 - -讲述各厂商如何创建服务器并添加到 HyperApp 中,同时文档要面向非技术用户。 - -主要技术点: - -* 如何注册账号,并领取各个厂商的试用金,不可以带推广链接。 -* 如何创建服务器,描述各个字段的含义、如何选择,比如一定要让用户选择64位的系统。由于兼容性问题,操作系统统一推荐 Ubuntu 16 或者 CentOS 7,不可推荐低版本的系统。 -* 如果有防火墙则引导默认开启 80,443端口。并且加一句提醒安装应用后需要设置防火墙才能访问。 -* 添加到 HyperApp 时,如何知道主机 IP、端口、用户名、密码。 -* 要有一个小节介绍自动添加功能,只要告诉用户如何打开 Web SSH/VPC 就行了。 - -文档放在 `语言/vendors` 下面。比如 Linode 放在 `zh/vendors/Linode.md`,图片放在 `zh/vendors/images/Linode-1.png`。 - -- [x] Google Cloud Engine -- [ ] Amazon AWS -- [ ] Vultr -- [ ] Digital Ocean -- [ ] Linode -- [ ] 搬瓦工(需要说明如何分辨 OpenVZ 和 KVM,并且声明 Docker 不支持 OpenVZ 的主机) -- [ ] 樱花 - ---- - -### 应用使用教程 - -所有可以使用 Nginx 和 SSL 的应用,都需要介绍 Nginx 和 SSL 的配置,可以复制下面这段话: - -```md -### Nginx 和自动 SSL 证书 - -如果你需要在同一个服务器上部署多个应用,那么需要配置 Nginx 将不同域名的请求代理到不同的应用上。你可以点击“显示Nginx 和SSL设置"。填入设置并且将应用安装到主机上后,并不需要重启 Nginx 和 Nginx SSL Support,会自动检测。 - -首先需要在目标机器上安装 `Nginx` 和 `Nginx SSL Support`。 - -Nginx 配置: -1. 域名:填入要访问的域名,比如是博客的话可以填入 blog.xx.com -2. 端口:这个是反向代理的端口,不填的话会自动检测,如果自动检测失败,那么可以填写Docker容器中expose出来的那个端口。 - -SSL 配置: -1. 域名:填入要支持SSL的域名,一般情况下需要与上面的域名一样。 -2. 邮箱: -``` - - -- [ ] Resilio Sync 如何安装。客户端如何安装。 -- [ ] - diff --git a/zh/faq.md b/zh/faq.md index bc72a47..c3bf311 100644 --- a/zh/faq.md +++ b/zh/faq.md @@ -1,292 +1,129 @@ - # FAQ -## 索引 -* HyperApp 问题 - * 关于国区被下架的解决方法 - * 如何申请 TF - * 常见安装错误 - * BBR 问题 - * 服务器错误 -* 应用问题 - * 文件上传大小限制 - * 网页无法访问 (502,503) -* 爱国问题 - * 手机爱国电脑不爱国 - * 无法爱国的问题 -* [GCP 问题](#gcp) - * [结算账号被停用](proxy/get-started.md) - * [密钥认证失败](proxy/get-started.md) - +---- ## HyperApp 常见问题 -### 关于国区被下架的问题 - -1. 临时的下载&更新方案是将自己账号换区,比如加拿大区(不需要绑定支付方式),然后点击购买即可(不需要再次付费)。 -2. 如果你想参加TF(测试版)将购买收据和邮箱发给我,不换区也能一直保持更新。 -3. 如果你要注册新区账号,可以尝试申请退款然后重新购买。 -4. 不要找作者索要或者购买新区兑换码、TF邀请码。 +#### 关于国区被下架的问题 -### 如何申请 TF -在 `App` 里面点击 `发送反馈邮件` 将主题改为 `申请 TF` 并且附上购买收据即可。 +HyperApp 因不可抗的政策原因已在 App Store 中国区不可用。 -### 如何更新应用? +#### **如何升级应用?** 1. 在服务器下面的 Docker 监控里选择你的应用,轻点后选择 `Pull Image` 即可更新镜像,然后在应用那里 `更新配置` 2. 手动的话可以 `docker ps` 找到应用的镜像名字,然后 `docker pull 镜像`,然后在应用那里 `更新配置` -### 安装错误 - - -#### 安装应用时报错 "i686 not recognized platform" - -* 系统必须是64位(X86-64)Linux系统 -* 虚拟化方式不支持 OpenVZ - - -#### Bind for *** failed:port is already allocated. - -端口重复了,不同的应用、进程不能使用同一个端口 - - -#### 为什么在安装应用的时候.会卡在安装中非常久(这种情况多出现在国内VPS中)? - -请先确定你的VPS可以正确联网再参考下列步骤: -* 方法1: 在hyperapp终端左下角第一个按钮中.选择安装阿里云国内Docker源 -* 方法2: 阿里云用户请参考[使用阿里云镜像加速服务](Aliyun-docker.md) -* 终极解决办法: 远离国内VPS. -* 如果你使用的国外 VPS 依然非常慢,那估计是你VPS的网络比较慢,有些应用的镜像很大,下载需要时间。 - - -#### 提示连接失败/无法连接 - -1. 请不要打开VPN连接hyperapp.(或者在对应的App中加一条规则,设置你的服务器IP直连) -2. 检查服务器IP是否变了(GCP 如果没有用静态IP,服务器关机后再重启IP可能会变) - -#### 提示 transport read 或者 timeout - -1. 不要开 VPN 使用 HyperApp,并且进行操作的时候不要切换应用. -2. timeout 可能是掉线了,刷新下服务器状态,看看应用状态是否改变。 - - -#### Conflict - -`docker: Error response from daemon: Conflict. The container name *** is already used by container ....` - -应用已经安装过了,更新了配置要点击“更新配置” - - -#### docker command not found - -1. 确保你 VPS 的操作系统支持 Docker。 -2. HyperApp 会自动安装 Docker,出现这类问题可能是 Docker 安装失败,你可以手动执行 `curl -fsSL get.docker.com | sh` 安装最新docker - - -#### cannot connect to the Docker daemon - -1. 请确保你的 Linux 版本符合要求 -2. 请确保一定要先安装 BBR 再安装应用,如果你不幸搞错了顺序,参考下一条 - - -#### 如果先安装了docker再安装bbr导致无法启动docker怎么办? - -执行 `rm -rf /var/lib/docker/aufs` 清除docker网络配置.然后重新安装所有应用即可. - - -#### sudo: no tty present and no askpass program specified - -你需要修改 `sudo` 配置文件允许当前用户无密码运行 `sudo` - - -#### 操作Docker时提示权限不足(Permission Denied) - -原因:当前用户没有docker权限,加到docker组才有,执行命令 - - -``` -sudo usermod -aG docker $USER -``` +---- -#### 安装应用时安装失败提示"overlay"已满 - -原因:已安装或者曾经安装过的应用太多,因为Docker自身的机制,删除容器并不会删除镜像,久而久之硬盘可能会被塞满 - -首先进入命令行,输入以下命令来查询已存在的镜像 - -``` -docker image ls -``` -然后找到不需要的或者占用体积特别大的镜像,复制它的"REPOSITORY"或者"IMAGE ID",然后键入以下命令来删除镜像 - -``` -docker image rm 镜像ID或者REPOSITORY -``` -删除完成之后可看到硬盘空间已经释放,可以继续安装想要的应用 +## 防火墙设置教程 -#### 使用bbr安装脚本的时候提示"Inappropriate ioctl for device" -使用键盘随便输入几个字符并且回车两下.原因是bbr安装脚本需要等待输入来执行下一步 +#### 临时禁用系统防火墙 + - CentOS7: service firewalld stop + - CentOS6: service iptables stop + - Ubuntu16: service ufw stop -##### 部署 Nginx SSL Support 报错提示找不到/不存在Nginx Proxy 但 Nginx 已经正确安装 +#### 永久禁用系统防火墙 -* 如果将同一个应用部署到多个服务器,最好在安装时一次选择多个服务器而不要开启多个应用。 + - CentOS7: systemctl disable firewalld + - Ubuntu16: systemctl disable ufw -检查 SSL Support 是否在同一机器有对应的Nginx +#### 系统防火墙永久添加端口 + - CentOS7: firewall-cmd --permanent --zone=public --add-port=端口/tcp ---- +#### 平台防火墙 + - GCE: 网络 → 防火墙规则 + - 点击`创建防火墙规则` + - 名称:随便输入一个名称 + - 目标:选择 `网络中的所有示例` + - 来源过滤:`0.0.0.0/0` + - 协议和端口:`指定的协议和端口` 下面输入 `tcp;udp:端口号` + - AWS: EC2 控制面板 → 安全组 + - 阿里云: 云服务器 ECS → 安全组 -## 应用问题 +---- -### 网页无法访问 +## 系统问题 -常见原因: +#### 如何手动开启 BBR -1. 如果你启用了 `HTTPS` 请稍等片刻,SSL Support 获取证书需要时间(大约几分钟)。 -2. 有些应用安装后也需要几分钟的初始化时间(比如数据库初始化),请稍等几分钟再试。 +* 注意以下命令需要 `root` 权限,非 root 用户先执行 `sudo su -` 切换到 root 账户 +1. 运行 `uname -r` 看看是不是内核 >= 4.9,不是的话请先升级内核 -如果错误继续,参考下面过程排错: +2. 执行 `lsmod | grep bbr`,查看 BBR 模块是否启用,如果结果中没有 tcp_bbr 的话就先执行 -1. 刷新服务器状态,确保应用处于 `running` 状态。 -2. 如果不在运行中的状态,说明安装后的初始化没有成功,查看应用日志可以看到出错原因。 -3. 如果你要寻求帮助,请发出此处的日志截图,且要贴全。 + ```sh + modprobe tcp_bbr + echo "tcp_bbr" >> /etc/modules-load.d/modules.conf + ``` +3. 执行命令设置 TCP 使用 BBR 发包 -### 关于V2Ray访问域名出现Bad Request的解决办法 - 如果你按照教程搭建了`Nginx(tls)+V2Ray(websocket)`.那么访问证书域名的时候往往会出现bad request的情况.这是成功的标志.但是总不那么好看.这里给出一个跳转到其他域名的办法.执行以下命令即可.注意修改命令中的域名 + ```sh + echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf + echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf + ``` -```sh -echo -e "proxy_intercept_errors on;\nerror_page 400 = https://要跳转到的域名;" > /srv/docker/nginx/vhost.d/default -``` -### 关于 Nginx 的上传限制 +4. 执行以下命令保存以上设置生效启用 -如果你使用了 `Nginx Proxy`,则默认有个2M的上传限制,你可以新建一个文件 `/srv/docker/nginx/vhost.d/default` 添加一行 `client_max_body_size 100m;` 来解决这个问题(一般情况下 Nginx 会自动重启,如果没有则需要手动重启下 Nginx Proxy) + ```sh + sysctl -p + ``` -你也可以直接运行下面的命令,会自动创建上面的所说的文件: +#### 验证 BBR 是否已经启用 ```sh -echo "client_max_body_size 100m;" > /srv/docker/nginx/vhost.d/default +sysctl net.ipv4.tcp_available_congestion_control +sysctl net.ipv4.tcp_congestion_control ``` -* **除了 Nginx 外,PHP 还可以有自己的上传限制,请参考 https://github.com/waylybaye/HyperApp-Guide/issues/152** - - -## 爱国问题 - -### 手机可以电脑不行: -请先查看客户端日志,并贴出来用全局模式测非Chrome、Firefox浏览器(因为Chrome浏览器的很多插件会改代理设置)如果全局可以就能断定是pac规则或者浏览器的原因。 - - -### 无法科学上网的问题 - -#### 排查服务端的问题 - -1. HyperApp 里面刷新一下服务器状态,看应用是否启动成功(显示 up xxx seconds/minutes/hours) -2. 点击 `查看日志` 看看应用日志中是否有错误提示 - * ss-libev 如果有一些连接错误的信心,一般是客户端的密码、加密方式、混淆没填对。 -3. 如果上两步都没有问题,请检查 - * 是否是机器防火墙问题(参考下面的第二项) - * 是否是客户端配置错误(参考下面的客户端排错) - -#### 排查客户端的问题 -* 是否使用了跟服务端一致的配置。建议通过扫描二维码的方式添加。 -* 如果你用 Wingy 不要开 OBFS (除非你自己足够了解) -* 另外不要用 SSR 连 SS,也不要用 SS 连 SSR -* ss-libev 客户端的 http/tls 混淆必须要和服务端一致。(服务器如果设置的 tls 混淆,客户端也必须用 tls) -* 最后如果你的问题不在上述思路中.请仔细查看文章中涵盖的hyperapp常见问题以及解决方案.实在搞不懂再上群提问并且请注意你的语气.没有人有义务帮助你. +* 如果输出结果都有bbr, 则证明你的内核已开启bbr -### 如何排查服务器是否有防火墙阻拦了某个端口? +---- -1. 在 VPS 上运行: `telnet localhost PORT(要检查的端口)` 能通说明服务端没问题。不通说明服务端启动失败。 -2. 在电脑上运行`telnet IP PORT(要检查的端口)` 能通说明防火墙没问题。不通说明是防火墙的问题。 -3. 在 VPS 上运行 `lsof -i :端口` 来查看是否有进程正在监听该端口,如果有说明是防火墙屏蔽了端口访问,如果没有说明部署失败。 - - -## 防火墙设置教程 +## 厂商常见问题: -* 临时禁用系统防火墙 - * CentOS7: service firewalld stop - * CentOS6: service iptables stop - * Ubuntu16: service ufw stop -* 永久禁用系统防火墙 - * CentOS7: systemctl disable firewalld - * Ubuntu16: systemctl disable ufw -* 系统防火墙永久添加端口 - * CentOS7: firewall-cmd --permanent --zone=public --add-port=端口/tcp -* 平台防火墙 - * GCE: 网络 → 防火墙规则 - * 点击`创建防火墙规则` - * 名称:随便输入一个名称 - * 目标:选择 `网络中的所有示例` - * 来源过滤:`0.0.0.0/0` - * 协议和端口:`指定的协议和端口` 下面输入 `tcp;udp:端口号` - * AWS: EC2 控制面板 → 安全组 - * 阿里云: 云服务器 ECS → 安全组 - -## GCP - -### 二维码显示不全,如何手动添加 GCP ? +#### 二维码显示不全,如何手动添加 GCP ? 1. 二维码上面有 `IP`,`用户名`,`端口` 信息,在 `HyperApp → 服务器` 中点击添加按钮,选择手动配置。 2. 在出现的窗口中,分别输入上面对应的字段,密码不填写,在最下面的密钥那里选择一个密钥(应该只有一个)。 3. 添加即可。但是稍后的可能会出现密钥认证失败的错误,所以建议将密钥名字改成你的 gmail 邮箱名字。或者按照教程,修改两处用户名一致即可。 -## 厂商常见问题: +#### 其他厂商常见问题 * 搬瓦工只支持 KVM虚拟化 的机器。 -* Vultr/DigitalOcean/AWS 全都支持 -* GCP没有领到试用金:重新打开试用页面再点击一次“Try it free” -* 50Kvm 的机器第一次登录需要记下下次登录的 SSH 端口 -* DigitalOcean 的机器第一次登录需要改密码 - -## HyperApp 常见问题: -* bbr脚本执行后重启后发现执行`lsmod | grep bbr`发现输出空白.bbr没有正确启动.同时执行sysctl -p输出空白 -* 根据使用者反馈的问题 ,初步解决方案是执行一下命令 - -​```bash -sudo su && cp /etc/sysctl.conf /etc/sysctl.conf.bak && rm -rf /etc/sysctl.conf && touch /etc/sysctl.conf && chmod 644 /etc/sysctl.conf && sudo echo -e "\n\n\n\nnet.core.default_qdisc = fq\n\n\nnet.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf && sysctl -p -``` +* Vultr/DigitalOcean/AWS 全都支持 -​**如果这时候`lsmod | grep bbr`还没有出现tcp_bbr的话请自行根据网上linux文本编辑器教程编辑/etc/sysctl.conf.加上这两行** +* GCP没有领到试用金:重新打开试用页面再点击一次“Try it free” -​```bash -net.core.default_qdisc = fq -net.ipv4.tcp_congestion_control = bbr -``` +* 50Kvm 的机器第一次登录需要记下下次登录的 SSH 端口 -* 关于squid内存不足无法正确启动的解决办法: +* DigitalOcean 的机器第一次登录需要改密码 - * Ubuntu使用如下命令创建swap +---- -```bash -sudo su -fallocate -l 1G /swapfile -chmod 600 /swapfile -mkswap /swapfile -swapon /swapfile -cp /etc/fstab /etc/fstab.bak -echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab -echo "vm.swappiness = 10" » /etc/sysctl.conf -sysctl -p -``` +## 安装错误 -* Centos请将第一个echo换成 - `echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab` +* 如果你遇到以下情况请查看[关于安装错误的FAQ](FAQ-Error.md) + * 初始化服务器的时候遇到问题 + * 安装应用的过程中报错或者出现预料以外的提示 +---- +## 应用问题 +* 如果你遇到以下情况请查看[关于应用问题的FAQ](FAQ-App.md) -## Hyperapp官方应用教程链接 + * 在商店安装的应用遇到问题 + * 应用的使用过程中遇到限制或者其他问题 -https://www.hyperapp.fun +---- -#### ~~部署v2ray等hyperapp应用可适当参考如下链接~~(打死这个不要脸的:) -https://vinga.fun diff --git a/zh/google.md b/zh/google.md deleted file mode 100644 index 516cd07..0000000 --- a/zh/google.md +++ /dev/null @@ -1,85 +0,0 @@ -# 超简单搭建免翻墙Google搜索 - -> 很多人会遇到这样一个问题.有时候想用一下Google搜索.却苦于需要翻墙.打开各大代理工具稍显笨重.今天介绍一个不需要翻墙搭建Google反向代理的教程 - -## 原文地址: https://vinga.fun/google - -## 更新记录 - -* 2017.08.29:增加了默认语言的设置.更新了docker.详细设置见下文. - -## 准备 - -* **Hyperapp** -* **一个已经解析正确的域名(ping验证)** -* **耐心.仔细.认真** - - -## Hyperapp设置服务端 - -1. **转到商店页面.找到Docker Image然后选择服务器并且保存进入配置界面** -2. **请完全按照下图配置进行填写!** - ![](./images/google-1.jpg) -3. **保存并且进行安装.请确保这时候Nginx Proxy以及Nginx SSL Support正常默认安装并且启动了** - - -## 默认语言设置(默认中文) - -1. **VPS执行`docker ps`找到`Google-Proxy`应用的`CONTAINER ID`.一般是一个十二位的字符串.** -2. **执行`docker exec -it '上面的CONTAINER ID' sh`进入`docker`内部** -3. **执行`vi /opt/nginx/conf/nginx.conf`把`zh-CN`修改为下列对应语言.修改完成保存并且重启应用** - - ``` - ar -> Arabic - bg -> Bulgarian - ca -> Catalan - zh-CN -> Chinese (Simplified) - zh-TW -> Chinese (Traditional) - hr -> Croatian - cs -> Czech - da -> Danish - nl -> Dutch - en -> English - tl -> Filipino - fi -> Finnish - fr -> French - de -> German - el -> Greek - iw -> Hebrew - hi -> Hindi - hu -> Hungarian - id -> Indonesian - it -> Italian - ja -> Japanese - ko -> Korean - lv -> Latvian - lt -> Lithuanian - no -> Norwegian - fa -> Persian - pl -> Polish - pt-BR -> Portuguese (Brazil) - pt-PT -> Portuguese (Portugal) - ro -> Romanian - ru -> Russian - sr -> Serbian - sk -> Slovak - sl -> Slovenian - es -> Spanish - sv -> Swedish - th -> Thai - tr -> Turkish - uk -> Ukrainian - vi -> Vietnamese - ``` - -## 大功告成 - -* **这时候去访问你的域名吧٩(˃̶͈̀௰˂̶͈́)و** - -## 写在最后 - -* 写了这么久.如果能有所收获那就是我最大的荣幸了:) -* 如果可以的话.可以关注一下 https://vinga.fun 这是我的私人博客地址:) -* 如有问题可发邮件至我邮箱fanalcest@gmail.com联系或telegram@fanvinga - -banner diff --git a/zh/h5ai.md b/zh/h5ai.md deleted file mode 100644 index 85cb6a4..0000000 --- a/zh/h5ai.md +++ /dev/null @@ -1,50 +0,0 @@ -# 搭建精美H5AI文件服务器 - -> 很多人会遇到这样一个问题.有时候想方便快捷的下载或者分享VPS上面的一些文件.但是又不熟悉命令而且也不方便.这时候文件服务器就派上用场了. - - -## 更新记录 - -- 2017.09.02:重要更新!请所有看过这篇文章的朋友注意.镜像已经再次更新.体积缩小到110MB.同时功能更为丰富.另外挂载目录已修改以避免一些问题.请仔细查看文章图片. -- 2017.08.27:重要更新!把原来的docker换成我自己的镜像.做了大量的更新. - -## 准备 - -* **Hyperapp** -* **一个已经解析正确的域名(ping验证)** -* **耐心.仔细.认真** - - -## 服务端部署 - -##### 首先我们先进入VPS的SSH窗口执行命令 - - -``` -sudo su -mkdir /share && chmod 777 /share -ln -s /share . -``` -* 这时候/share就是共享目录并且已经软连接到/root目录下面.可以在root目录下面快速访问.也可以通过`cd /share`来访问 -* 如果你想自定义目录也可以.替换/share即可.但是要注意权限设置 - - -#### 其次转到Hyperapp进行设置 - -1. **转到商店页面.找到Docker Image然后选择服务器并且保存进入配置界面** -2. **请完全按照下图配置进行填写!** - ![](./images/h5ai.png) -3. **保存并且进行安装.请确保这时候Nginx Proxy以及Nginx SSL Support正常默认安装并且启动了** - - -## 大功告成 - -* **这时候去访问你的域名吧٩(˃̶͈̀௰˂̶͈́)و** - -## 写在最后 - -* 写了这么久.如果能有所收获那就是我最大的荣幸了:) -* 如果可以的话.可以关注一下 https://vinga.fun 这是我的私人博客地址:) -* 如有问题可发邮件至我邮箱fanalcest@gmail.com联系或telegram@fanvinga - -banner diff --git a/zh/images/Domain-6.jpg b/zh/images/Domain-6.jpg deleted file mode 100644 index 385fea3..0000000 Binary files a/zh/images/Domain-6.jpg and /dev/null differ diff --git a/zh/images/chat-1.jpg b/zh/images/chat-1.jpg deleted file mode 100644 index 21650f8..0000000 Binary files a/zh/images/chat-1.jpg and /dev/null differ diff --git a/zh/images/google-1.jpg b/zh/images/google-1.jpg deleted file mode 100644 index c359617..0000000 Binary files a/zh/images/google-1.jpg and /dev/null differ diff --git a/zh/images/h5ai.png b/zh/images/h5ai.png deleted file mode 100644 index 63d6eb8..0000000 Binary files a/zh/images/h5ai.png and /dev/null differ diff --git a/zh/images/tg-1.jpg b/zh/images/tg-1.jpg deleted file mode 100644 index a7488df..0000000 Binary files a/zh/images/tg-1.jpg and /dev/null differ diff --git a/zh/images/tg-2.jpg b/zh/images/tg-2.jpg deleted file mode 100644 index 8f4e94c..0000000 Binary files a/zh/images/tg-2.jpg and /dev/null differ diff --git a/zh/images/tg-3.jpg b/zh/images/tg-3.jpg deleted file mode 100644 index b8a9455..0000000 Binary files a/zh/images/tg-3.jpg and /dev/null differ diff --git a/zh/images/tg-4.jpg b/zh/images/tg-4.jpg deleted file mode 100644 index c7f6fad..0000000 Binary files a/zh/images/tg-4.jpg and /dev/null differ diff --git a/zh/monitor.md b/zh/monitor.md deleted file mode 100644 index 2899dbb..0000000 --- a/zh/monitor.md +++ /dev/null @@ -1,191 +0,0 @@ - -## 搭建精美强大Grafana监控系统 - - -> **随着剁手越来越畅快.手里积攒的小鸡也越来越多了.那今天就讲解一下怎么样搭建一个美轮美奂的基于Grafana+influxDb+Colletcd的监控系统.感谢开源世界!** - - - -## 本文原文链接https://vinga.fun/monitor - - - -## 更新记录 - -- **2017.10.1:增加了网络拓扑部分.** - - - -## 效果截图 - -![monitor-1](./images/monitor-1.jpg) -![monitor-2](./images/monitor-2.jpg) - - - -## 网络拓扑 - -![monitor-0](./images/monitor-0.jpg) - - - -## 准备 - -* **Hyperapp** -* **一个已经解析正确的域名(ping验证)** -* **耐心.仔细.认真** - - - -## 监控端部署 - -### 首先我们先进入要提供监控面板的VPS的SSH窗口执行命令 - - -``` -sudo su -cd /root/ -wget --no-check-certificate https://github.com/fanvinga/monitor/raw/master/monitor.zip -unzip monitor.zip -chmod -R 777 monitor -rm monitor.zip -``` -* **执行完这个命令.在`/root`下会出现一个叫做`monitor`的文件夹.并且里面有三个子文件夹.分别是`grafana` `influxDB` 和`collectd`.里面有一些我们后面会用到的文件.并且我们也会把数据放在这个文件夹里面** - - - - -### 其次部署安装influxDB - -1. **转到商店页面.找到Docker Image然后选择服务器并且保存进入配置界面** -2. **请完全按照下图配置进行填写!** -3. **保存并且进行安装.** - -| 应用设置名称 | 内容 | -| :-----------: | :--------------------------------------: | -| Image | influxdb:alpine | -| Options | -p 8086:8086 -p 25826:25826/udp -v /root/monitor/influxdb/conf/influxdb.conf:/etc/influxdb/influxdb.conf:ro -v /root/monitor/influxdb/db:/var/lib/influxdb -v /root/monitor/collectd/types.db:/usr/share/collectd/types.db | -| Command | -config /etc/influxdb/influxdb.conf | -| Args | | -| **Nginx设置名称** | **influxdb不需要nginx分流.请留空并隐藏设置** | - - - -### 部署collectd并且把数据传给influxdb - -* **这里我只讲`Debian 8`的安装办法.`Debian 9`直接`apt-get install collectd`即可.除此之外请自行Google搜索`collectd`安装办法** -* **执行以下命令增加`collectd`的源和`gpg`公钥** - `echo -e "deb http://pkg.ci.collectd.org/deb jessie collectd-5.7 \n" >> /etc/apt/sources.list.d/pkg.ci.collectd.org.list` -* **执行以下命令更新源并安装`collectd`** - -``` - apt-get update - gpg —recv-keys 3994D24FB8543576 - gpg —export -a 3994D24FB8543576 | apt-key add - - apt-get install collectd -y --force-yes -``` - -* **自行修改`/etc/collectd/collectd.conf`里面collectd的相应设置.`ping`这个模块里面的目标地址要自行添加到`/etc/hosts`里面.修改完成之后执行`systemctl restart collectd`重启collectd.这里我提供一份优化过的配置.** - -``` - Hostname "collectd节点的名字" - FQDNLookup true - BaseDir "/var/lib/collectd" - PluginDir "/usr/lib/collectd" - TypesDB "/usr/share/collectd/types.db" - Interval 30 - LoadPlugin cpu - LoadPlugin df - LoadPlugin disk - LoadPlugin interface - LoadPlugin memory - LoadPlugin network - LoadPlugin ping - LoadPlugin swap - - ReportByCpu true - ReportByState true - ValuesPercentage true - - - FSType rootfs - FSType sysfs - FSType proc - FSType devtmpfs - FSType devpts - FSType tmpfs - FSType fusectl - FSType cgroup - IgnoreSelected true - ValuesAbsolute true - ValuesPercentage false - - - ValuesAbsolute false - ValuesPercentage true - - - Server "influxdb所在VPS的ip地址/域名" "25826" - - - Host "ZS.Telecom" - Host "ZS.Unicom" - Interval 5.0 - Timeout 0.9 - TTL 255 - - - Filter "*.conf" - -``` - - - -### 接着找到influxdb的container id并且部署grafana - -1. **先在vps的ssh执行`docker ps | grep alpine`.这时候会返回一行`influxdb`的有关信息.这时候我们把最后一小段(形如docker-04f39d)复制出来备用** -2. **转到hyperapp的商店页面.找到Docker Image然后选择服务器并且保存进入配置界面** -3. **请完全按照下图配置进行填写!** -4. **保存并安装,这时候两个docker如果正常启动并且没有报错.访问域名就会正常出现grafana的登录界面**. - -| 应用设置名称 | 内容 | -| :-----------: | :--------------------------------------: | -| Image | grafana/grafana | -| Options | --link docker-04f39d(请自行修改为你的influxdb的id):influxdb -v /root/monitor/grafana:/var/lib/grafana | -| Command | | -| Args | | -| **Nginx设置名称** | **内容** | -| 域名 | 你要给grafana的域名 | -| 应用端口 | 3000 | -| Https | 将http重定向到https | -| 域名 | 你要给grafana的域名(自动填写) | -| 邮箱 | 域名所对应的邮箱 | - -* **如果在grafana运行过程中遇到localhost的问题.那么请在初始登录完grafana之后在options里面加上`-e "GF_SERVER_ROOT_URL=你要给grafana的域名"`并且更新配置.** - - - - -### 设置Grafana - -1. **如图登录`grafana`** - * **用户名 admin** - * **密码 admin** - - ![monitor-3](./images/monitor-3.jpg) -2. **点击`Add data source`来到增加数据库界面.按照下图填写配置.要完全一致!** - ![monitor-4](./images/monitor-4.jpg) -3. **点击`Dashboards`然后选择`New`.选择一个图表样式.这里用`Graph`举例.再点击一下`Panel Title`.会出来一个小菜单.选择`Edit`.按照下图进行配置并且在`Legend`选项卡开启`Avg`即可得到一个节点到联通的链路信息图例.** - ![monitor-5](./images/monitor-5.jpg) -4. **这只是其中一个小例子.还有监控CPU/内存/硬盘/流量/IO等等的图例.请到Grafana官网查找图例配置教程(官网真的文档非常非常非常齐全).或者Google搜索** - - - - -## 写在最后 - -* 写了这么久.如果能有所收获那就是我最大的荣幸了:) -* 如果可以的话.可以关注一下 https://vinga.fun 这是我的私人博客地址:) -* 如有问题可发邮件至我邮箱fanalcest@gmail.com联系或telegram@fanvinga - -banner diff --git a/zh/proxy/Complete.md b/zh/proxy/Complete.md deleted file mode 100644 index 453d450..0000000 --- a/zh/proxy/Complete.md +++ /dev/null @@ -1,5 +0,0 @@ -# HyperApp 完全攻略 - - -## 通用 - diff --git a/zh/proxy/GFW.md b/zh/proxy/GFW.md deleted file mode 100644 index 7dc89ab..0000000 --- a/zh/proxy/GFW.md +++ /dev/null @@ -1,99 +0,0 @@ -# 科学上网综述 - - -## 主机商 - -目前市面上常用的主机商有下面一些: - -* Google Cloud Platform (以下简称 GCP) - * 提供一年$300美金的免费试用 - * 需要 Visa/MasterCard 信用卡 - * 机房众多,其中台湾机房更是极品,延迟50ms左右 -* Amazon Web Services (AWS) - * 提供一年免费试用,试用包括一个最低配置的主机和每月15G流量 -* Linode - * $5/月起,东京机房质量较好 -* DigitalOcean - * $5/月起,最近的机房是新加坡 -* Vultr - * $2.5/月起,有东京机房,但2.5的可能缺货买不到 -* 搬瓦工 -    * KVM/OVZ 皆$2.99或$4.99/月起,有洛杉矶机房,凤凰城机房等等 - -### 如何选择主机商 - -在不考虑价格的情况下,阿里云香港机房 > GCP 台湾机房 > 其它日本线路 > 美国线路。 - - -| 地区 | 运营商 | 优先机房 | -| ---- | ---- | ---- | -| 全国 | 长宽、鹏博士等三级运营商 | 反正外网限速 5Mbps 选啥都一样 | -| 北方 | 移动 | Linode/Vultr 东京 | -| 全国 | 电信 | cn2 线路 | - - -### 推荐链接 - -如果你使用下面的链接注册,那么你会收到相应的一小笔试用赠金,如果你将来消费开发者会收到$10的奖励。这些奖励将被用来购买主机运营一些 HyperApp 相关的公共项目。 - -(PS:文中其它地方出现的所有链接没有加推荐代码) - -* [Vultr - $10 试用](http://www.vultr.com/?ref=6833039) -* [Linode - $20 试用](https://www.linode.com/?r=ad279824479def3ef162e3e99498242d4046ec1b) -* [Digital Ocean - $10 试用](https://m.do.co/c/a70d556c37f7) - - ----- - - -## 代理软件 - -下面主要有两类翻墙手段,一个是轻量级代理,一个是 VPN 类。 - - -| 应用 | iOS | Android | Mac | Windows | 安全性 | -| ---- | ---- | ---- | ---- | ---- | ---- | -| ss | ✅ | ✅ | ✅ | ✅ | 👍👍👍👍 | -| SSR | ✅ | ✅ | ✅ | ✅ | 👍👍👍👍👍 | -| V2Ray | ⚠️ | ✅ | ✅ | ✅ | 👍👍👍👍👍 | -| kcptun | ❌ | ✅ | ✅ | ✅ | 👍👍 | -| AnyConnect | ✅ | ✅ | ✅ | ✅ | 👍👍👍👍👍 | -| OpenVPN | ✅ | ✅ | ✅ | ✅ | 👍👍 | -| IpSec VPN | ✅ | ✅ | ✅ | ✅ | 👍 | -* iOS使用Shadowrocket作为客户端可支持V2Ray除mkcp外所有链接方式.协议选择Vmess即可 - - -* 轻量级代理 - * Shadowsocks (SS) - * 专门为墙而生的 socks 代理,HyperApp 中包括两个版本,一个是比较老的 Shadowsocks Python 原版,一个是 C 语言实现的一直在更新的 libev 版。推荐后者。 - * 服务端和客户端均需要专属软件,客户端全平台都支持,选择多 - * ShadowsocksR (SSR) - * Shadowsocks 的一个魔改版,添加了许多混淆方式,某些运营商可能无法使用 SS (比如长城宽带),这是可以使用 SSR 来代替,SSR 可以将代理伪装成普通的网站请求,以此来跳过运营商的封锁。 - * 服务端和客户端均需要专属软件,客户端全平台都支持,选择多 - * kcptun - * 如果你的机房线路很好(比如 GCP 台湾机房)那么直接用 SS 就有很好的速度,但是某些线路非常差的机房就需要 kcptun 这种黑科技了,上面的代理都是使用 TCP 来连接的,但 kcptun 使用 UDP (一般的下载软件也都是 UDP)通过多倍发包在延迟高丢包高的线路上来实现网络加速。 - * 服务端和客户端均需要专属软件,客户端全平台都支持,但选择较少 - * V2Ray - * V2Ray 的志向很大,要做一个全能的代理平台,其内置了 HTTP,Socks,Shadowsocks,VMess等协议的代理。功能非常强大,但缺点是配置非常复杂。不过还好 HyperApp 能方便安装配置其服务端。另外 V2Ray 不仅可以使用 TCP 还支持使用 mKCP 多倍发包来加速。 - * 服务端和客户端均需要专属软件,客户端全平台都支持,但选择较少 -* VPN 类 - * IPSec/L2TP VPN: - * ⚠️ 不推荐,出墙的话会被秒封,墙内也不推荐使用,但优点是系统都内置支持 - * OpenVPN: - * ⚠️ 不推荐,但如果墙内用则推荐,安全性更高,缺点是各个平台都需要手动下载软件 - * OpenConnect (Cisco AnyConnect) - * ❤️ 推荐,如果翻墙需要 VPN 则强烈推荐这个。许多外企都使用 Cisco AnyConnect 来办公,所以受到的墙的干扰非常少。安全性也很高。 - -### 其它加速技术 - -#### BBR - -BBR 是 Google 开发的一种新的TCP发包方式,在较低丢包率和稍微延迟的线路上能够达到比较好的加速效果。而且只需要在服务器端安装即可。 - - -### 如何选择? - -1. 如果你机房的线路非常好(香港、台湾机房)那么直接使用 BBR + SS/SSR 即可。 -2. 如果你机房的线路很差(比如丢包很高或者距离很远)那么可以使用 BBR + SS/SSR + kcptun。 -3. 如果你的运营商会封锁 SS 或者进行 QoS,那么使用 BBR + SSR 混淆,或者 BBR + VMess 的 TLS 混淆。 - diff --git a/zh/proxy/Pipesocks.md b/zh/proxy/Pipesocks.md deleted file mode 100644 index 53789ff..0000000 --- a/zh/proxy/Pipesocks.md +++ /dev/null @@ -1,43 +0,0 @@ -# Pipesocks 教程 - -简介:Pipesocks 是另一款代理软件(省略),官网 [https://pipesocks.github.io/md/tutorial](https://pipesocks.github.io/md/tutorial) - -Pipesocks把爱国上网的过程比喻为Pump(泵)、Pipe(水管)、Tap(水龙头), 一般地,将服务端形容为泵,客户端比喻为水龙头,中间的传输通道比喻为水管。 - -## HyperApp 服务端配置 - -首先打开HyperApp在应用中找到Pipesocks,填写相关配置,这里只需要填写"Localport"和"password"即端口和密码即可。 - - - -## 防火墙配置 - -- CentOS -``` -firewall-cmd --add-port=端口号/tcp --permanent -firewall-cmd --reload -``` -- Ubuntu -``` -sudo ufw allow 端口号 -``` - -## 客户端配置 - -你可以在这里找到一些平台的[客户端](https://github.com/pipesocks/pipesocks/releases/tag/2.3),其中IOS端的下载地址在[这里](https://appsto.re/us/DvFNhb.i)下文以IOS端为例 - -### Pipesocks 配置(IOS) - -打开Pipesocks,点击Settings,填写`服务器IP,端口,和密码`,全部填写完毕之后返回主页面点击袜子图案,黑白袜子变成黄袜子之时代表代理已经开启 - - - -### Pipesocks 配置(PC) - -在上述地址下载好PC版(.exe文件)之后,双击会自动解压到一个文件夹内,此时进入文件夹打开软件,照如下方式填写后运行即可。 - - - -Pipesocks没有全局代理,需要自行配制浏览器代理插件,Chrome浏览器推荐[ProxySwitchyOmaga](https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif?utm_source=chrome-ntp-icon),Firefox推荐[Foxyproxy](https://addons.mozilla.org/en-US/firefox/addon/foxyproxy-standard/) 在此不再赘述。 - -大功告成! diff --git a/zh/proxy/SSR.md b/zh/proxy/SSR.md deleted file mode 100644 index 1ad73b9..0000000 --- a/zh/proxy/SSR.md +++ /dev/null @@ -1,73 +0,0 @@ -# SSR 教程 - -简介:SSR 是另一款代理软件(省略),官网 [https://github.com/shadowsocksr/shadowsocksr](https://github.com/shadowsocksr/shadowsocksr) - -官方文档 [https://github.com/breakwa11/shadowsocks-rss/wiki](https://github.com/breakwa11/shadowsocks-rss/wiki) - - -## HyperApp 服务端配置 - -### 应用配置及安装 - - - -* Port: 端口 (端口的选择范围在65536以内都可以) -* Password: 填一个密码 -* Encrypt: 选择一种加密方式,推荐 `none` -* Protocol: 选择一种协议,推荐 `auth_chain_a` -* Protocol_param: 不用填 -* Obfs: 如果你的运营商没有封锁 SS 可以选择 `plain`,如果你的运营商是小运营商,推荐选择 `tls1.2_ticket_auth` 或者 `http_simple` -* Obfs_params: 可以不填 - -### 开启防火墙对应的端口 - - - CentOS7 - ``` - firewall-cmd --add-port=SSR监听的端口号/tcp --permanent && firewall-cmd --reload - ``` - - Ubuntu16 - ``` - sudo ufw allow SSR监听的端口号 - ``` - -- 为了图方便也可以选择关闭防火墙,关闭防火墙的命令如下。但是**十分不建议那样做** - - - 临时禁用防火墙 - ``` - CentOS7: service firewalld stop - CentOS6: service iptables stop - Ubuntu16 service ufw stop - ``` - - 永久禁用系统防火墙 - ``` - CentOS7: systemctl disable firewalld - Ubuntu16: systemctl disable ufw - ``` - - 平台防火墙 - ``` - CES: 网络——防火墙规则 - AWS: EC2 控制面板——安全组 - 阿里云:  云服务器ECS——安全组 - ``` - -## 客户端配置 - -你可以在官方文档里面找到所有平台的客户端下载地址 [https://github.com/breakwa11/shadowsocks-rss/wiki](https://github.com/breakwa11/shadowsocks-rss/wiki) - -配置客户端你可以手动填写配置,也可以在 `HyperApp` 中轻点服务器名选择 `QR` 然后用客户端扫码配置。 - -大功告成! - -## 注 - - 日志中显示以下内容代表服务端已成功启动(个别地方根据配置的不同可能不同,只要不报错就行) - - ``` - IPv6 not support - 2017-07-29 12:06:54 INFO util.py:85 loading libsodium from libsodium.so.18 - 2017-07-29 12:06:54 INFO shell.py:72 ShadowsocksR 3.4.0 2017-07-27 - 2017-07-29 12:06:54 INFO server.py:46 current process RLIMIT_NOFILE resource: soft 65536 hard 65536 - 2017-07-29 12:06:54 INFO asyncdns.py:324 dns server: [('8.8.8.8', 53), ('8.8.4.4', 53)] - 2017-07-29 12:06:54 INFO server.py:106 server start with protocol[auth_chain_b] password [kyo07] method [chacha20-ietf] obfs [tls1.2_ticket_auth] obfs_param [] - 2017-07-29 12:06:54 INFO server.py:122 starting server at [::]:8838 - 2017-07-29 12:06:54 INFO server.py:142 starting server at 0.0.0.0:8838 - ``` diff --git a/zh/proxy/Smartsocks-help.md b/zh/proxy/Smartsocks-help.md deleted file mode 100644 index 317ae25..0000000 --- a/zh/proxy/Smartsocks-help.md +++ /dev/null @@ -1,78 +0,0 @@ -# Smartsocks使用帮助 - - - -> SmartSocks 是一个服务端和客户端自动协商最快传输协议的工具。客户端会自动尝试 SSR/V2Ray 推荐的配置组合,然后使用 `speedtest` 来测速。 -* **本文原文链接https://vinga.fun/smartsocks** - - -## 支持的应用 - -* ShdowsocksR -* V2Ray (tcp & kcp) -* Kcptun (计划中) - - - -## 功能 - -* 自动尝试使用各种应用的加密方式与协议与服务器连接.并使用speedtest进行测速.获取最佳组合 -* 根据测速的结果自动在本地开放一个socks代理端口 - - - -# 服务端 - -## 安装与启动 - -在 `HyperApp → 商店 → 网络` 分组下面找到 `SmartSocks` 安装,配置时只要填入一个主控端口,和用户名密码即可. - -​ -​ -​ - - - - -# 客户端 - - - -## 目前支持的系统 - -* Linux -* macOS - - - - -## 安装 - - - -**打开终端并执行下列命令** - -`curl -sL https://raw.githubusercontent.com/waylybaye/SmartSocks/master/install_client.sh | bash` - - - -## 启动 - - - -**打开终端并执行下列命令** - -`cd smartsocks` - -`python client.py -s 你的服务器地址 -p 1000(刚刚设置的) -u test(刚刚设置的) -P test(刚刚设置的) -S 52000(自定义的本地SSR代理端口)` - - - -## 注意事项 - - - -* **在使用Smartsocks之前请先将本地所打开的所有SSR/V2Ray程序以及Surge等代理程序关闭以防干扰** -* **在执行命令之前确保终端没有使用HTTP代理** -* **目前Smartsocks还处于测试阶段,可能存在BUG,如有错误提示可到https://t.me/hyperapp进行反馈** - diff --git a/zh/proxy/V2Ray.md b/zh/proxy/V2Ray.md deleted file mode 100644 index a2a9d3c..0000000 --- a/zh/proxy/V2Ray.md +++ /dev/null @@ -1,247 +0,0 @@ -# V2Ray 教程 - -简介:V2Ray 是另一款代理软件(省略),官网 [https://www.v2ray.com/](https://www.v2ray.com/) - -目录 -* 背景知识 - * TCP 模式 - * WebSocket 模式 - * mKCP 模式 -* V2Ray 服务端配置 - * 方案1: 使用 TCP 传输,并开启 TLS - * 方案2: WebSocket 传输,使用 Nginx & SSL Support 反代 V2Ray -* 客户端配置 - * macOS V2RayX - ----- - -### 背景知识 - -V2Ray 共有三种传输方式,可以形成三种使用方案: - -#### TCP 模式 (支持 TLS) - -使用TCP来传输,这种方式和其它代理应用模式上差不多。TCP 模式可以使用 HTTP/TLS 混淆来模拟 HTTP 网站流量,但也只是模拟,并不是真实的 HTTP 流量。 - -#### WebSocket 模式 (支持 TLS) - -WebSocket 是一种在 HTTP 之上的协议,本质也是TCP传输,但是是天然的 HTTP 网站流量。并且可以搭配各种 HTTP 服务器(比如nginx,caddy)一起使用。 - -因为 WebSocket 已经是 HTTP 的一种,所以并不需要任何伪装(混淆)。 - -#### mKCP 模式 - -使用 `UDP` 来传输,mKCP是以流量换速度,就是多倍发包,我同一份数据发多份,防止丢包重传,所以同一条件下使用mKCP会比其他方式耗费更多流量,不建议手机4G使用。 - -由于BT下载、游戏、以及视频聊天等也都是使用 UDP 传输,所以这种模式下可以伪装成 `BT下载流量、FaceTime 流量、微信视频流量`。 - -由于 BBR 是 TCP 加速技术,所以使用 mKCP 并不能享受 BBR 的加速buff,不过 mKCP 本身就是一种加速技术了,也并不需要 BBR。 - ---- - -## HyperApp 服务端配置 - -### 应用配置及安装 - - - -``` -* Port: 填一个端口 -* Network: 选择一种传输方式 - * tcp 使用 TCP 连接 - * kcp 使用 UDP (可能会被运营商 QoS) - * ws 使用 WebSocket -* Header: 选择一种混淆模式 - * none 不使用混淆 - * tcp http: 使用 http 混淆(需要上面选择 tcp) - * kcp ****: 这几个都是kcp的混淆方式,需要上面选择 kcp - * 注意 ws (WebSocket) 本身就是 HTTP 所以不用也不能选择混淆方式 -* Clients - * ID: 会自动生成一个 UUID - * level: 信任级别,默认为1 - * alterID: 默认32,注意客户端的 UUID 和 alterID 必须保持一致 -* TLS - * Enable TLS 开启 TLS 1.2 加密(混淆) - * TLS Domain SSL 证书的域名,将会自动在下面 `SSL certs` - 目录下面寻找证书文件。 -* Volumes - * config.json 生成的 V2Ray 配置文件会存在这里 - * SSL certs SSL 证书的存放位置 -``` - ----- - - -## 方案1: 使用 TCP 传输,并开启 TLS - -### TLS 证书设置 -如果你想使用 WebSocket 请跳过本段,直接看下一段,本段只适用于 TCP 方式。 - -如果你开启了 TLS 就需要填一个 `TLS Domain` 并且在上面 `SSL certs` 目录下面放两个文件。 - -* `domain.com.crt` 如`bing.com.crt` -* `domain.com.key` 如 `bing.com.key` - -#### 自动生成 SSL 证书 - -当然你也可以用 `Nginx Proxy` 和 `Nginx SSL Support` 自动生成可信的 SSL 证书。不过你要先关闭上面的 `Enable TLS` 选项,否则没有证书 V2ray 启动不起来,等几分钟证书生成了后,再打开此选项,然后`更新配置`即可。 - -关于如何自动生成可信证书的更多介绍,请参考 [如何自动生成 SSL 证书](./SSL.md) - - -## 方案2: WebSocket 传输,使用 Nginx & SSL Support 反代 V2Ray - -这个方案会自动配置 Nginx 来反代 V2Ray,达到完美伪装。结合 Nginx SSL Support 还能自动生成可信的 LetsEncrypt 证书。这个方案 TLS 是在 Nginx 层面实现的。 - -首先参考 [如何自动生成 SSL 证书](./SSL.md) 依次安装 `Nginx Proxy` 和 `Nginx SSL Support` 然后在上面的配置页面中,Nginx 和 SSL 选项按下面填写: - - -**注意,使用此模式时,443 端口是分配给 Nginx 的,你要为 V2Ray 随便设置另外一个端口,但客户端连接时使用443** - -### 自定义域名 -* 域名:填写您的域名 -* 应用端口:**填写上一段中设置的端口** -* HTTPS: 默认会将 HTTP 重定向到 HTTPS,建议选择不重定向,这样客户端就可以随便选需不需要TLS了。 - -### SSL 选项 -* 域名:填写您的域名,默认与上面一样 -* 邮箱:填写您的邮箱 - -然后安装即可,安装完毕稍等几分钟 Nginx SSL Support 将会自动生成可信的 LetsEncrypt 证书。接下来就配置客户端连接即可。 - -关于如何自动生成可信证书的更多介绍,请参考 [如何自动生成 SSL 证书](./SSL.md) - -## 方案3: 使用mKCP 传输 - -mKCP是V2ray对KCP的简单实现,是基于UDP的一种传输方式,它可以伪装成FaceTime视频通话,BT下载和WeChat视频聊天等流量,一般搭配动态端口来实现较为完美的伪装,动态端口HyperApp后续将会支持,此处暂以单端口为例。 - -### 配置选项 -* Port: 填写您的端口 -* Network: 选择"kcp" -* Header: "kcp utp","kcp srtp","kcp wechat-video"三选一 - -其他设置保持默认即可,安装完毕后记得打开防火墙对应的UDP端口。 - ----- - - -## 客户端配置 - - -你可以在这里找到所有平台的客户端 [V2Ray 各平台的图形客户端介绍](https://www.v2ray.com/chapter_01/3rd_party.html) - -但是主流平台依然有以下推荐的方案: - -* **MAC** [V2RayX](https://github.com/Cenmrev/V2RayX/releases) -* **PC** [V2rayN](https://github.com/v2ray/v2rayN/releases) -* **IOS** [Shadowrocket](https://itunes.apple.com/us/app/shadowrocket/id932747118?mt=8) -* **IOS** [Kitsunebi](https://itunes.apple.com/us/app/kitsunebi/id1275446921?mt=8) -* **Android** [V2rayNg](https://play.google.com/store/apps/details?id=com.v2ray.ang&hl=en) - -## MAC 客户端 - -### V2RayX 配置(Mac) - -在 `V2RayX → Servers` 中添加一个服务器,如图: - -![](../images/v2rayx-server.png) - -* Address: 填入你服务器的地址 和 HyperApp 中设置的端口 -* UUID: HyperApp 中的 UUID -* alterId: HyperApp 中的 alterID -* Security: 随便选,推荐默认选项 -* Network: 选择 HyperApp 中配置的选项,默认为 TCP - -#### HTTP 混淆 配置 - -点击左下角的 `tranport settings` 选择 `TCP` 如图 `header type` 选择 `http` 即可开启 http 混淆 - -![](../images/v2rayx-tcp.png) -#### WebSocket 配置 - -如果你使用 WebSocket 则打开 WebSocket 选项卡,填写选项即可。其实不用改,默认选项就行。 - - -#### TLS 配置 - -点击 `TLS` 标签页,选中 `Use TLS` 如果你是自签名证书也同时选中 `Allow Insecure` - -![](../images/v2rayx-tls.png) - -## PC 客户端 - ->使用 PC 客户端之前你还需要[在此下载](https://github.com/v2ray/v2ray-core/releases)一个核心程序的压缩包,然后解压缩。再把下载好的V2rayN程序和核心程序放在同一个文件夹 - -### V2RayN 配置 - -在`V2rayN→服务器`中添加一个服务器,如图 - -![](../images/v2ray-client-1.png) - -* 地址(Address): 填入你服务器的地址 -* 端口(Port):HyperApp 中的 端口,本例程为443 -* 用户ID(id): HyperApp 中的 UUID -* 额外(alterId): HyperApp 中的 alterID -* 加密方式(Security): 随便选,推荐默认选项 -* 传输协议(Network): 选择 HyperApp 中配置的选项,默认为 TCP - -#### HTTP 混淆 配置 - -点击下方的`伪装类型` 选择 `http` 如图 `伪装域名/其他项` 填写所要伪装的域名,用逗号隔开即可开启 http 混淆 - -![](../images/v2ray-client-2.png) -#### WebSocket 配置 - -如果你使用 WebSocket 则上方的`传输类型` 选择 `ws`,`伪装类型`选择`none`,`伪装域名/其他项`填写WS的路径,除非特别指定,一般留空。 - -![](../images/v2ray-client-3.png) - -#### TLS 配置 - -如果你需要启用TLS,那么点击 `底层传输安全` 选项卡,选中 `TLS` ,上述介绍的任意方式都可以开启TLS。 - -## IOS 客户端 - -### Shadowrocket 配置 - -在右上角中添加一个服务器,类型选择`Vmess`,并依次填写以下内容 - -* HOST: 填入你服务器的地址 -* PORT: 填入在HyperApp 中的 端口 -* UUID: HyperApp 中的 UUID -* Method: 默认选项 - -#### HTTP 混淆 配置 - -点击下方的`Obfuscation` ,进入二级页面,`Name`选择 `http` .`Path` 保持默认,`下面的大方框` 填写所要伪装的域名,用逗号隔开即可开启 http 混淆 - -![](../images/v2ray-client-4.png) -#### WebSocket 配置 - -点击下方的`Obfuscation` ,进入二级页面,`Name`选择 `Websocket` .`Path` 保持默认,`下面的大方框` 填写`你的域名`,用逗号隔开即可开启 http 混淆 - -![](../images/v2ray-client-5.png) - -#### TLS 配置 - -如果你需要启用TLS,那么右滑打开在主设置页面的`TLS`开关,上述介绍的任意方式都可以开启TLS,在本例程中已经打开TLS。 - -### Kitsunebi 配置 - -在右上角中点击“+”,类型选择`Vmess`,并依次填写以下内容 - -* Address: 填入你服务器的地址 -* Port: 填入在HyperApp 中的 端口 -* Password/UUID: HyperApp 中的 UUID -* Security: 保持默认即可 -* Network: 选择你所配置的方式,本文以WS为例 -* WS Path: 填写你的WS的路径,一般此处为空。 -* TLS: 右滑勾选 -* Allow Insecure: 建议勾选 - -![](../images/v2ray-client-6.png) - - ---- - -大功告成! diff --git a/zh/proxy/V2ray+Websocket.md b/zh/proxy/V2ray+Websocket.md deleted file mode 100644 index 1169a22..0000000 --- a/zh/proxy/V2ray+Websocket.md +++ /dev/null @@ -1,143 +0,0 @@ -# V2Ray完美混淆教程(内含全平台客户端配置教程) - - - -> **在国际形势如此严峻的今天.配置一个完美混淆的工具是非常有必要的.今天我们就来讲解.如何使用V2Ray配置websocket并且使用Nginx反向代理挂靠TLS证书** - - - -### 本文原文链接为 https://vinga.fun/v2ray 原文更新更为及时 - -## 更新记录 -- 2017.10.1:增加了网络拓扑部分. -- 2017.08.10:Replace the introduce of server setting. -- 2017.07.28:增加了一直相加但是懒癌发作没加的mac版config.json -- 2017.07.28:增加了安卓和win端客户端的链接并且调整了小火箭的图片排版 -- 2017.07.27:增加了安卓端和win端的设置.并且与ios端并列 - -## 网络拓扑 - -![v2ray-0](../images/v2ray-0.jpg) - -## 工具 - -- **hyperapp** -- **Mac/Win** -- **耐心** - - - -## 准备工作 - - - -- **首先先按照之前的获取顶级域名教程.拿到属于你自己域名.并且将域名解析到VPS上面去.请确保解析正确后再进行以下步骤.如果已经有域名了直接进入下一步** -- **使用hyperapp安装Nginx Proxy以及Nginx SSL Support.保持默认配置即可.如有发生端口冲突则自行排查.经测试默认的80端口可以更改为8080.443端口更改会导致证书获取失败(仅限于本教程范畴)** - - - -## 配置V2Ray服务端 - -![v2ray-1](../images/v2ray-1.jpg) - -- **配置完后安装即可** - - - -## 配置客户端连接 - -### 通用 - -- **注意保证客户端的ID以及alterID和服务端保持一致(在之后版本的hyperapp会添加多用户支持)** -- **注意选择网络类型为Websocket** -- **地址要填写你的域名.端口是443(也就是你的Nginx Proxy里面SSL Port请保持默认443不要更改.更改会导致出错)** - -### ios&Mac - -- **小火箭设置为以下选项即可正常连接**(**如果已经升级到2.1.13及其以上版本.混淆参数中不需要填写混淆域名**) - ![v2ray-2](../images/v2ray-2.jpg) -- **如果你的代理工具是surge的话.配置文件请参考给出的config进行修改.默认开放127.0.0.1:10000作为本地socks代理端口并且将收到流量全部转发给vps.然后使用`/path/to/v2ray —config=/path/to/json`来启动本地v2ray.具体运行请到 https://www.v2ray.com/chapter_01/install.html 自行了解** -- **surge设置连接本地socks代理地址为127.0.0.1:10000即可** - -```json - { - "log": { - "loglevel": "warning" - }, - "inbound": { - "protocol": "socks", - "listen": "0.0.0.0", - "port": 10000,//这里要填写你打算在本地开放的socks代理端口 - "settings": { - "auth": "noauth", - "udp": true, - "timeout": 30 - } - }, - "inboundDetour": [], - "outbound": { - "protocol": "vmess", - "settings": { - "vnext": [ - { - "address": "", //这里填写你分配给v2ray的域名 - "port": 443, //这里填写Nginx SSL的端口默认是443 - "users": [ - { - "id": "",//这里填写的是你的UUID也就是一大长串的那个 - "alterId": ,//这里填写的是hyperapp里面配置的alterID.默认32 - "security": "aes-128-gcm"//这里选择一个加密方式.不了解这个请不要改.个人推荐这个 - } - ] - } - ] - }, - "streamSettings": { - "network": "ws", - "security": "tls", - "tlsSettings": { - "serverName": "",//这里还要填写你分配给v2ray的域名 - "allowInsecure": false - }, - "wsSettings": { - "connectionReuse": true, - "path": "" - } - }, - "mux":{ - "enabled": true, - "concurrency": 8 - } - } - } -``` - -### 安卓&Win - -- **安卓请下载V2rayNG程序(http://t.cn/R9U7Xl9 GooglePlay地址),开启后点选+,选择手动输入,并按照下列表格进行配置** -- **win则下载安装V2rayN(http://t.cn/R9UtWfJ 按照README来安装启动V2rayN).并且按照如下表格填写添加配置** -- **另外.win添加完配置之后正确启动了v2rayN并且没有报错之后.请让你的浏览器或者应用程序连接本地127.0.0.1:1080这个地址的socks代理.具体教程请根据你的程序/浏览器自行查找** - -| 配置选项 | 配置内容 | -| :----: | :--------------------------------------: | -| 别名 | 自定义自己看的顺眼就行 | -| 地址 | 你给v2ray分配的域名 | -| 端口 | 443(也就是你的Nginx Proxy里面SSL Port请保持默认443不要更改.更改会导致出错) | -| 用户ID | hyperapp里面的uuid(也就是最长的那一串) | -| 额外ID | 填写hyperapp里面alterID(默认32) | -| 加密方式 | 默认就可以(个人推荐aes-128-gcm) | -| 传输协议 | ws | -| 伪装类型 | none(下面一行tcp伪装域名留空不写) | -| 底层传输安全 | tls | - -## 请尽情享受安全的网络:) - -- **疑问请加入hyperapp官方telegram群咨询@fanvinga** - -## 写在最后 - -- **写了这么久.如果能有所收获那就是我最大的荣幸了:)** -- **如果可以的话.可以关注一下 https://vinga.fun 这是我的私人博客地址:)** -- **如有问题可发邮件至我邮箱fanalcest@gmail.com联系或telegram@fanvinga** - - banner \ No newline at end of file diff --git a/zh/proxy/get-started.md b/zh/proxy/get-started.md deleted file mode 100644 index 13b1608..0000000 --- a/zh/proxy/get-started.md +++ /dev/null @@ -1,222 +0,0 @@ -# 如何免费打造打造一个安全稳定低延迟超高速的科学上网环境 - -这篇文章将会介绍如何获取由 Google 提供的一年 $300 美金的试用金,然后使用 HyperApp 搭建一个低延迟超高速的科学上网环境。网络延迟基本在50ms左右,并且可以流畅观看 Youtube 4K 视频。本文不需要读者有较深的技术背景,全部过程都可视化、自动化完成。 - -下文用 GCP 代表 Google Cloud Platform,指 Google 的整个云平台。GCE 是指 Google Cloud Engine,是 GCP 产品线里的一个主机产品。 - - -#### 本文前提条件 - -1. 有一个 Google 账号,没有的话可以注册一个。 -2. 注册 GCP 免费试用需要用信用卡进行身份验证(只做验证,不会收费),所以你必须有一个 Visa/MasterCard 的信用卡才行。 - - -#### 本文目录 - -1. GCP 注册以及创建服务器 - * 注册 GCP - * 新建主机 -2. HyperApp - * 添加服务器到 HyperApp - * 配置公钥 - * 开启 BBR 加速,跑满带宽 - * 部署科学上网应用 -3. 客户端设置 -4. 常见问题 - ---- - -## GCP 注册以及创建服务器 - -要访问 Google 首先需要你能科学上网,但是这篇文章又是介绍如何科学上网的,好像有点🐔生蛋蛋生🐔的矛盾… 其实你可以去App Store搜索 V屁恩,找一个免费的下载后,通过签到等方式暂时领取一天或者几个小时的免费低速试用来完成下面的教程。 - - -### 注册 GCP 免费试用 - - - - -1. 登录Google账号后使用这个链接来注册 https://cloud.google.com/free/ ,在打开的页面中点击“Try it Free"。 -2. 接受条款,并点击”同意并继续“ -3. 在页面中填入你的信息: - * 账号类型:个人 - * 名称和地址:填写你的地址、电话等 - * 付款方式:添加一个信用卡。这个信用卡将会用来验证身份,防止GCP被滥用。 - * 点击 ”开始免费使用“ 完成注册 - - -在后面的页面中,如果你能看到页面顶部有一个“礼物 🎁 ” 的小图标,说明已经获取了试用金。 - - -### 新建主机 - - - - -1. 按照上图所示,在左侧菜单中导航到 [计算引擎 → VM 实例](https://console.cloud.google.com/compute/instances) -2. 点击加号按钮,创建一个 VM 实例。 - - - -* 名称:随意填入一个易记得名字 -* 地区:建议选择 `asia-east1-*` 三个中的任意一个,这个机房是在台湾,国内的延迟只有 50~70ms,简直快到飞起。 -* 机器类型:选择 “小型” (1.7G 内存) 就可以了。默认选中的 3.75G 的内存其实用不完。(只用SS的话建议选最低配置的,这样每月大约可以留出来80G流量) -* 启动磁盘:默认的Debian 8就可以,推荐 Ubuntu 16.04 或者 CentOs 7,但是为了防止将来磁盘不够用,你可以点击右下角的更改,大小里使用 20G 或者 30G。 -* 防火墙:选中 “允许HTTP流量” 和 “允许HTTPS流量” - -**注意:GCE 的 CentOS 有各种小问题,如果你执意要用 CentOS 遇到问题请自行 Google** - -点击”创建“,稍等几分钟就会创建完毕,现在打开 HyperApp 开始配置这台服务器吧。 - ---- - - -## HyperApp - -HyperApp 是一个部署自动化以及服务器监控管理的App,致力于让普通用户也可以使用云服务。HyperApp 可以监控服务器/路由器的运行状态,还可以可视化的一键部署各种应用。 -本段介绍如何使用 HyperApp 管理刚刚创建的服务器,开启 BBR 加速,安装科学上网应用。 - -[![下载 HyperApp](https://linkmaker.itunes.apple.com/assets/shared/badges/zh-chs/appstore-lrg.svg "View on App Store")](https://itunes.apple.com/app/apple-store/id1179750280?pt=118260435&ct=v2ex&mt=8) - - -### 添加服务器到 HyperApp - - - -1. 在 “服务器” 页面点击右下角的加号,然后选择第二个”自动配置“ -2. 点击“开始”,应用会自动生成一对密钥,请耐心等到几秒~十几秒。 -3. 等到出现“一切就绪”时,点击“复制“将代码复制到剪贴板里,如果你用电脑操作的话可以点击”发送“将代码通过任意一种方式发送到电脑上。 - - - - - -在 GCE [计算引擎 → VM 实例](https://console.cloud.google.com/compute/instances) 页面,选择刚刚创建的实例的 `SSH ▽ 在浏览器窗口中打开` 打开一个基于 Web 的 SSH 终端。 - -在浏览器的SSH中粘贴并运行刚刚复制的代码。等到二维码出现时,使用 HyperApp 扫描该二维码便会自动添加该服务器。添加后 HyperApp 会检测刚刚添加的服务器的基本运行状况。 - - -### 永久添加公钥 - -注意:你可以暂时跳过本小段,进行后续的操作,如果 HyperApp 出现了**密钥认证错误**的提示,可以回到这段进行操作。 - -刚刚的自动配置的功能在几乎所有主机上都可以用,但是 GCE 是个例外,它会清空用户自行添加的公钥,所以几分钟后可能就会出现密钥认证失败的错误。你可以通过以下步骤永久性的设置密钥。 - -1. 打开 `HyperApp` → `更多` → `SSH Keys` → `点击唯一的一个 Key` → `复制公钥`。 -2. 打开 [GCP → 计算引擎 → 元数据 → SSH 密钥](https://console.cloud.google.com/compute/metadata/sshKeys) 点击修改后,复制并添加刚刚的公钥。 -3. 添加后页面会出现一行新记录,主要有两列:用户名 和 密钥。然后确保 HyperApp → 服务器 → 点击服务器下面的齿轮按钮 用户名为这儿显示的用户名,保存后就可以了。(如果你按照上面的步骤操作,HyperApp 自动修改用户名所以这两个用户名应该默认是一致的) -4. 添加以后同一账号下所有新建的主机都可以不用再次操作了。 - ---- - - -### 开启 BBR 加速,跑满带宽 - -这一步并不影响科学上网,但是会极大的提高上网质量。BBR是 Google 开发的TCP拥塞控制技术,并且已经合并到较新的Linux内核中。它的主要作用是可以让你跑满服务器的带宽。 - -比如说没有开启的情况下你观看 Youtube 720P的视频都可能会卡,但是开启了BBR后 1080P 的视频完全无卡顿,就连 4K 视频也可以流畅观看(有些网络特别卡的除外)。 - -要开启 BBR 需要升级 Linux 内核,不过不用急,在 HyperApp 中开启非常简单: - - - -1. 在服务器卡片中点击右上角的 Terminal 图标,进入 SSH 终端。 -2. 选择最下面的一行工具栏的第一个图标,然后点击 "teddyun/BBR" 一键脚本的链接,点击后会让你确认是否下载并执行外部脚本。 -3. 点击确认后会自动下载并执行,执行过程中需要点击键盘上回车键确认继续。如果想中断执行,那么点击 `ctrl` 后按 `c` 终止执行。 -4. 稍等几分钟,等待系统内核升级到最新版后会自动重启(重启时终端会显示Done 和 Shell Closed)然后关闭窗口即可。 -5. 如果你想确认 BBR 有没有安装成功,那么再次进入 SSH 终端,输入 lsmod | grep bbr 如果能看到一行记录就是成功了。 - -注意:一定要先升级BBR再安装应用,反过来会出错,如果你不小心操作错了顺序,请参考 [排错指引](../faq.md)。 - - ---- - - -### 部署科学上网应用 - - - - - -在 `HyperApp` → `商店` 页面 `网络` 分组下选择任意一个应用,这里我们选择占用资源最少的 `****-libev`,(下文用SS代替)点击该应用。在弹出的对话框中选择刚刚添加的服务器,点击`创建应用` - - -在此页面中输入简单的一些配置: -* Port: 端口,可以填入 80 或者 443(因为用其它端口需要设置防火墙) -* Password:随便填入一个密码 -* Encrypt:选择一种加密方式,推荐针对移动访问优化的 `chacha20` -* OBFS: 使用 OBFS 可以将 SS 流量伪装成正常的网页访问从而达到欺骗效果,可以防止被墙或者运营商干扰。 - -如果你使用其它端口,请参考文末的 [设置GCE防火墙](#设置-gce-防火墙) 如何开启防火墙。 - -如果安装的过程中出现错误,可以截图后进群寻求帮助,但最快的方式依然是:建一个新的vm重来一遍!真的,很神奇的! - - ---- - -## 客户端设置 - -### iOS - -iOS 上有很多 SS 的客户端可供选择,收费的有 小火箭、土豆丝、Surge等。免费的可以使用 Wingy。 - -配置很简单,只需要点击应用卡片里的服务器栏,然后选择顶部的QR,截图后用其它客户端扫码即可。 - -如果你想手动配置,请按指示填写参数即可,下面和配置和上面 【部署科学上网应用】段落里第2步的配置一一对应: - -* 服务器:填入你的服务器外部 IP(GCP后台 VM列表页面有一列外部IP,就是那个)。 -* 端口:上面配置界面里面的端口(80,或者443) -* 密码:上面配置界面里面的密码 -* 加密方式:上面配置界面里面的加密方式 - -### Mac/Windows - -Mac 和 Windows 上都有免费的 SS 客户端可以使用,配置方法也是只要输入你的IP、端口、密码和加密方式即可。 - - ---- - -## 常见问题: - -### 如何建多个账号? -你可以创建多个应用给不同的人使用,一个应用只占 1~2M 内存(但注意每个应用的端口必须不同) - -### 信用卡被扣一美元? -这是验证信用卡信息是否正确的,快则几分钟慢则几小时就会退款。 - -### 结算账号被关闭怎么办? -你可能没仔细填信用卡信息,查看你的邮箱应该会有一封谷歌的通知邮件,按照提示传下资料,几个小时左右就会被解封了。 - ---- - -### 其它玩法 - -现在你有了一台 1.75G 内存的服务器了,只用来做SS好像有点浪费(SS只占用几M内存),其实使用 HyperApp 还有很多其它玩法,商店里面有很多其它应用,都可以自动安装配置。 - -比如你可以自己搭建一个博客、网站、论坛,个人网盘,聊天服务,并且可以自动配置HTTPS。如果你玩游戏可以创建一个 Minecraft 服务器。或者部署一个接收微信消息转发到Telegram的机器人。更多信息可以参阅👇 的 HyperApp 文档和教程。 - - -### HyperApp 支持 - -[官方文档和教程](https://github.com/waylybaye/HyperApp-Guide) -[Telegram 群](https://t.me/hyperapp) -[Twitter @HyperApp](https://twitter.com/HyperAppCloud) - - -如果你遇到了各种各样的技术问题,比如无法安装、无法连接等,可以在群里召唤机器人或者开发者进行解答。或者在App里面点击 发送反馈邮件 获取帮助,这两种是最快的获取帮助的方式。 - - -### 设置 GCE 防火墙 - -1. 在GCP后台点击 [网络 → 防火墙规则](https://console.cloud.google.com/networking/firewalls/list) -2. 点击 `创建防火墙规则` - * 名称:随便输入一个名称 - * 目标:选择 `网络中的所有示例` - * 来源过滤:`0.0.0.0/0` - * 协议和端口:`指定的协议和端口` 下面输入 `tcp;udp:端口号` - - -### 自建和购买商业服务对比有什么优势? - -1. 最主要的优势是隐私和安全,如果你看下上面SS的日志,你就知道服务商可以知道你的所有浏览历史的,如果你访问了不支持HTTPS的网站,那么请求内容也可能被监控(比如密码信息)。 -2. 另外是质量和成本,很多商家是使用和上面同样的机器但是卖给几百个人,你应该能明白了。成本方面没有免费试用的话1个人用可能会有点贵,但如果和朋友家人一起用就超值了,比如使用$2.5/月的 Vultr,每月500G 流量够很多人用的。 diff --git a/zh/proxy/kcptun.md b/zh/proxy/kcptun.md deleted file mode 100644 index 9a37e0d..0000000 --- a/zh/proxy/kcptun.md +++ /dev/null @@ -1,72 +0,0 @@ -# 使用 kcptun 加速其它网络服务 - -Kcptun 是一个非常简单和快速的,基于 KCP 协议的 UDP 隧道,它可以将 TCP 流转换为 KCP+UDP 流。而 KCP 是一个快速可靠协议,能以比 TCP 浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。服务端和客户端都需要安装特定软件。其需要配合其它软件来实现代理功能。(本教程中很多涉及端口的地方都有一个 : 英文冒号,配置过程中千万不要省略) - - - -*image from https://github.com/xtaci/kcptun/* - - -## 服务端 - - - - -配置信息: -* Listen Port: 填入一个端口,格式为 `:端口号` 注意冒号不可省略,可以填入默认值 `:29900` -* Target Addr: 要加速的端口,格式为 `IP:端口号`,此处填写你的 SS/SSR/V2Ray 等端口号,IP 可以使用 `127.0.0.1`,例如 `127.0.0.1:443` -* Key: 输入一个密码,kcptun 客户端连接时用 -* Crypt: 加密方式,默认 `aes` -* Mode: 默认 `fast` - -下面的都是可选参数,其实根据线路情况、你的运营商情况可能需要设置不同的值来达到最佳效果。此文不会教你如何设置这些值,先使用默认参数来配置。 - -在服务上安装即可,安装完成后进入防火墙配置阶段 - -## 防火墙配置 - -### 开启UDP端口 - -- RedHat/CentOS/Fedora - ``` - firewall-cmd --add-port=KCP侦听的端口/udp --permanent - firewall-cmd --reload - ``` -- Debian/Ubuntu - - ``` - sudo ufw allow KCP侦听的端口 - ``` - -防火墙配置完成后,进入客户端配置阶段 - -## 客户端配置 - -### 下载 kcptun - -在 [kcptun Releases](https://github.com/xtaci/kcptun/releases) 页面下载最新版的 kcptun,Mac 选择 `kcptun-darwin-amd64-*` 其它系统根据CPU选择程序包。 - - -### 运行 kcptun 命令行 - -将上面的文件解压后,在同级目录运行里面的 `client_*` - -```bash -./client_darwin_amd64 --remote 你服务器IP:上面的端口 --key 密码 --crypt 上面的加密 --mode 上面的Mode -l :一个本地端口 -``` - -你需要注意最后的 `本地端口`,在上面的命令中是 `冒号:端口号` 的形式,下面的设置只需要其中的端口号 - -### 运行 kcptun 图形客户端 - -运行图形客户端只需要填写几个关键的参数,kcp服务器地址填写你服务器的IP,端口填写上面的端口,本地侦听端口填写shadowsocks客户端在本地所建立的端口,其他设置根据上文的设置修改,配置完成后如下: - - - -### 配置 SS/SSR/V2ray 等客户端 - -现在你需要更改你的 SS/SSR/V2ray 等客户端的配置,不需要改其它参数,只要把 IP 改成本机 IP(127.0.0.1) 把端口改成上一步的 `本地端口号` 就可以了! - - -享受高速吧! - diff --git a/zh/proxy/love-bundle.md b/zh/proxy/love-bundle.md deleted file mode 100644 index 5a232d9..0000000 --- a/zh/proxy/love-bundle.md +++ /dev/null @@ -1,289 +0,0 @@ -# LoveBundle 单端口全协议解决方案 - - -### LoveBundle 是什么? - -对于服务器来说,端口似乎用不完,但常用端口是很紧缺的资源(特别是目前端口白名单的传闻),很多协议使用标准端口(如443)能达到最好的效果,但是一个端口只能跑一个进程,要是想在一个端口上跑所有协议该怎么办呢? - -LoveBundle 就是这样的一个应用,专为 HyperApp 用户提供,使用 haproxy 来自动分流各种协议的流量,从而实现用一个端口(443)来提供所有类型的服务,你只需要为不同的代理使用不同的混淆域名。 - -比如当你使用 `bing.com` (可以自己定义域名)连接时 `LoveBundle` 会将其识别为 `SS` 流量,当你用 `cloudflare.com` 连接时会将其识别为 `SSR` 流量,使用 `mydomain.com` 链接时会自动识别为 `Cisco AnyConnect` 流量。 - - -### LoveBundle 包含哪些应用? - -* `SS TLS 混淆` —— 你懂得 -* `SSR tls1.2_ticket_auth` —— 你也懂 -* `V2Ray VMess TCP TLS` —— 新秀 V2Ray -* `V2Ray VMess WebSocket TLS` —— 新秀第二种食用方法 -* `nghttpx HTTP2 TLS` —— 高效的 HTTP2 + TLS 代理,即使在 SS/SSR 被严重干扰的时候由于其小众性质也一直超稳定。 -* `ocserv: Cisco AnyConnect VPN` —— 广泛使用的企业级 VPN,出自 Cisco,全端客户端免费。 - - -其中 `V2Ray/nghttpx/AnyConnect` 需要SSL证书的可以自动生成自签证书,也支持自动获取可信的 LetsEncrypt 证书,通过 [certbot](../developer/certbot.md) 来自动生成,非常简单,具体使用请参阅 [certbot 自动生成LetsEncrypt 证书教程](../developer/certbot.md) 下文也会有提到怎么使用。 - - -### 什么是 HyperApp - -HyperApp 是一个iOS 上的自动化部署工具,提供可视化的配置界面,就算你不懂任何 Linux 命令也可以在 Linux 上一键部署多达几十个应用,LoveBundle 是其中之一。 - - -[![HyperApp on AppStore](https://linkmaker.itunes.apple.com/assets/shared/badges/zh-chs/appstore-lrg.svg "View on App Store")](https://itunes.apple.com/app/apple-store/id1179750280?pt=118260435&ct=guide&mt=8) - - ----- - - -## LoveBundle 配置 - -我们需要为除了SS/SSR之外的其它服务准备不同的子域名,如果你没有域名也不要着急,你可以使用 `xip.io` 提供的免费服务。你只需要简单的在 `xip.io` 前面加上的IP,就能获得一个域名,IP前面还可以加无限子域名,下文将直接以 `xip.io` 来举例。如果你了解怎么配置域名解析,可以自行添加DNS解析并替换成相关的域名。 - - -### 配置界面 - - - - -### 配置详解 - -在 `HyperApp` 商店中点击 `LoveBundle`,在出现的配置页面中按如下填写: - -**注意,如果你只想开启一部分功能,只需要填写对应服务的子域名即可,没有填写域名的服务将不会开启** - - -#### 通用配置 - -``` -* Port LoveBundle 监听的端口(推荐443) -* Password 此密码用来登录 SS/SSR/AnyConnect -* Username 此用户名可以用来登录 AnyConnect -``` - -其中只有 AnyConnect 需要会用到用户名,SS/SSR 认证只用到密码部分。 - -#### SS 和 SSR - -``` -* SS Domain SS TLS 混淆的域名(可以任意域名,不需要解析) -* SS Method SS 的加密协议 - -* SSR Domain SSR TLS 混淆的域名(可以任意域名,不需要解析) -* SRR Protocol SSR 协议 -* SSR Method SSR 加密方法 -``` - -你可以,在 SS Domain 中填入 `bing.com` 在 `SSR Domain` 中填入 `cloudflare.com` 并且选择加密方法。 - -SS/SSR 的混淆域名可以随便填,但下面的其它服务就需要一个指向你服务器的真实域名了。 - -#### V2Ray 配置 - -``` -* V2Ray UUID V2Ray 的 uuid,这儿会自动生成一个 (默认 alterID 是32) -* V2Ray TLS V2Ray TLS 的域名,推荐使用自己的域名+certbot证书。 -* V2Ray WS V2Ray WebSocket TLS 的域名,推荐使用自己的域名+certbot证书。 -``` - -假设你的VPS IP是 `10.10.10.10`,你可以在 `TLS Domain` 中填入 `tls.10.10.10.10.xip.io` 在 `WS Domain` 中填入 `ws.10.10.10.10.xip.io`。 - -如果你有自己的域名,做好解析后,可以在这儿填写你自己的域名。 - - -#### HTTP2 和 Cisco AnyConnect 配置 - -``` -* HTTPS Domain HTTP2 TLS Proxy 的域名,推荐使用自己的域名+certbot 证书。 - -* OCServ Domain AnyConnect 的域名,可以填写 IP(但是可能导致提示证书不可信的问题)。推荐使用自己的域名+certbot 证书。 -* CN no route 开启后将会忽略国内IP段,只对国外IP进行代理。 -``` - -和上面一样,我们在 `HTTPS Domain` 中填入 `http2.10.10.10.10.xip.io`. - -OCServ 就是 `Cisco AnyConnect`,我们可以填写另外一个域名 `ocserv.10.10.10.10.xip.io` - - - -### Volumes - -``` -certs 默认为 certbot 或者 Nginx SSL Support 的证书输出目录, - LoveBundle 会自动在这里寻找可信的证书。 - 如果找不到则会在下面的目录里生成自签证书。 -CA LoveBundle 用来生成自签证书以及VPN登录证书的目录 -``` - -其中 V2Ray TLS/WS 和 HTTP2/AnyConnect 会用到 `certs` 和 `CA` 里面的证书。SS/SSR 不需要,你甚至可以使用任何一个域名来连接 SS/SSR(原理请参考下文背景知识里面的真假 TLS)。 - - ----- - - -## 客户端配置 - - -#### SS 配置方法 - -``` -* 服务器 VPS IP -* 端口 上面设置的端口 -* 密码 上面的密码 -* 混淆 TLS -* 混淆域名 上面的 SS Domain -``` - - -#### SSR 配置方法 - -``` -* 服务器 VPS IP -* 端口 上面设置的端口 -* 密码 上面的密码 -* 加密、协议 和上面一一对应 -* 混淆方式 tls1.2_ticket_auth -* 混淆参数 上面的 SSR Domain -``` - -#### V2Ray TCP TLS 方式配置 - -``` -* Address 上面的 V2Ray TLS Domain(需要解析到你VPS上) -* Port 上面设置的端口 -* UUID 上面的UUID -* alterId 32 -* Network tcp -* TCP ✅ Conection Reuse -* TCP header typ none -* TLS ✅ - ✅ Allow insecure (如果使用自签证书) -``` - -#### V2Ray WebSocket TLS 方式配置 - -``` -* Address 上面的 V2Ray WS Domain(需要解析到你VPS上) -* 端口/UUID/alterID 和上面的保持一致 -* Network WebSocket -* WebSocket ✅ Conection Reuse -* path / -* TLS ✅ - ✅ Allow insecure (如果使用自签证书) -``` - -#### HTTP2(nghtpx) 连接方法 - -可以参考 [nghttpx 的教程](./nghttpx.md) - -#### Cisco AnyConnect 链接方法 - -``` -* Address 上面的 OCServ Domain -``` - -### 一切就绪! - -开始尽情冲浪吧!请问你是GG还是MM? - -. - -. - -. - - -稍等 …… - - -上文是用自签证书来链接的,V2Ray/HTTP2/AnyConnect 默认都会提示 TLS 链接不受信任。上面的配置中 V2ray 已经开启了 `Allow Insecure` 选项,所以会忽略自签证书的安全问题。AnyConnect 检测到自签证书时也不会自动重连,如果你追求完美可以继续阅读下面 👇 的段落,来免费自动生成可信的 SSL 证书。放心不难的! - - -即使你没有自己的域名也可以尝试使用上面的 `xip.io` 来进行下面的步骤(只是成功率很低,因为LetsEnrypt 对域名的请求次数有限制,xip.io 的所有子域名公用限制次数……)。 - ----- - - -## 背景知识 - -### 真假 TLS - -SS/SSR 的 TLS 混淆并非是真正的 TLS 流量,而是通过伪装成 TLS 的特征来欺骗运营商/观察者,使其将其当做 TLS 流量。 - -`V2Ray/nghttpx/ocserv` 则是真正的 TLS,真正的 TLS 需要服务端有 SSL 证书,证书也分为自签和可信的两种。 - -### 自签证书和可信证书 - -简单来说,如果自签的证书,浏览器、AnyConnect 等客户端链接时都会显示一个安全警告(最常见的比如你访问 12306.cn)。如果你打算使用自签证书则不需要做任何额外的配置,LoveBundle 会自动生成。 -可信的 SSL 并不会显示安全警告,你可以通过商店里的 [certbot](../developer/certbot.md) 来自动生成可信的SSL(LetsEncrypt)证书,LoveBundle 会自动在 certbot 目录中寻找指定域名的证书,如果没有找到则会自动生成自签证书。 - - - -## 获取可信的 SSL 证书 - -你上面应该也看到了,为了开启 LoveBundle 全部功能,我们共需要四个子域名: - -* V2Ray TCP TLS -* V2Ray Websocket TLS -* HTTP2 (https) -* AnyConnect - -### 使用 certbot 获取证书 - - -先稍作准备…… - -1. 将你的域名解析到 VPS 上域名解析的相关介绍与方法见[域名解析的方法](../dns.md)。如果你没有域名可以参考 [如何获取免费顶级域名](../free-domain.md) 来注册一个免费的域名。 -2. 参考 [certbot 教程](../developer/certbot.md) 来获取可信的 SSL 证书。 - - -下面在 `HyperApp` 商店中,选择 `certbot` 并按下文填写配置: - -1. 假设在 `1.` 中注册了 `love.ml` 域名,然后将 `v2ray-ws.love.ml` `v2ray-tls.love.ml` `http2.love.ml` `oc.love.ml` 分别指向到你的VPS IP上。 -2. 然后在 `certbot` 的域名中填入四个域名,用英文逗号分隔, `v2ray-ws.love.ml,v2ray-tls.love.ml,http2.love.ml,oc.love.ml`。 -3. 填入你的邮箱(邮箱将用来接收证书过期通知) -4. 配置完 `certbot` 后,点击 `安装`,运行结束后,`certbot` 的状态会变成 `existed xxx minutes` 成功后你会得到三个可信的 SSL 证书。 -5. 更改 LoveBundle 的配置,分别填入对应的域名即可。LoveBundle 会自动去对应的目录寻找证书。 -6. 点击 `LoveBundle` 菜单 `安装` 下面的 `更新配置` 将新的配置应用到 VPS 上面。 - -等待成功后,你的所有服务都是可信的 TLS 了! - ----- - - -## 结尾 - -。 - -。 - -。 - -。 - -。 - -。 - -。 - -。 - -。 - - - -### FAQ - -#### LoveBundle 全开会占用多少内存? - -服务全开的话 80M 左右 - - -#### 我不想开启某个服务怎么办? - -只要不填相关服务的域名即可,只要没有域名就不会开启服务。 - -#### 有问题解决不了怎么办? - -不要找我私聊,进 [HyperApp Telegram 群](https://t.me/hyperapp) 详细描述你的配置方法以及为什么不能用即可。 - - diff --git a/zh/proxy/nghttpx.md b/zh/proxy/nghttpx.md deleted file mode 100644 index e2718bc..0000000 --- a/zh/proxy/nghttpx.md +++ /dev/null @@ -1,70 +0,0 @@ -# 使用 nghttpx 搭建 HTTP2 代理 - -nghttpx 是一个 HTTP2 代理,HTTP2 是新一代的 HTTP 协议,但一些老牌的 HTTP 代理比如 squid 并不支持 HTTP2 协议,就需要 nghttpx 来将 HTTP2 协议翻译成 HTTP1.x 的协议,所以要搭建一个HTTP2 代理你需要一个 HTTP 代理来配合使用。(可以用商店中的 squid) - -具体请求流程是: - -| 国内网络 | 墙 | VPS | 自由网络 | 目标网站 -| --- | :---: | --- | :---: | --- | -| 你的浏览器 | → (加密)HTTP2 → | nghttpx → squid | → HTTP(S) → | 目标网站 | - -## 服务器安装和配置 - -### 配置 squid - - -在商店中选择 `squid` 并创建,无需填写任何选项安装即可(端口也不用填,因为squid配置好后默认监听在本地的3128端口)。 - -**注意,如果 Squid 无法启动,日志中显示 `FATAL xcalloc: Uable to allocate ***` 时,这是内存不足引起的错误。你可以尝试添加交互分区来解决。 - -```sh -sudo su -fallocate -l 1G /swapfile -chmod 600 /swapfile -mkswap /swapfile -swapon /swapfile -echo "vm.swappiness = 10" >> /etc/sysctl.conf -sysctl -p -``` - -注意重启后swap会取消挂载.请根据相应系统查询写入fstab的命令.这里给出Ubuntu和Centos的 - -Ubuntu:`echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab` - -Centos:`echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab` - -然后**卸载重装** Squid 即可。 - - -### 配置 nghttpx - - - -SSL 证书的获取你可以参考 [如何自动生成可信的SSL证书](./SSL.md),如果使用自签名证书你需要在客户端导入CA。 - -* Port: 代理端口,一般默认为443。 -* Disable TLS: 是否禁用 TLS,不禁用的话就必须填写 SSL 参数以及提供 SSL 证书。**默认为不禁用,一般不打开此开关**。 -* Domain: SSL 证书的域名 -* Backend: 后端 HTTP 代理,如果你下面link 了一个 backend(本教程中连接上文创立的squid应用),这里就填 `backend,端口号`,如果你使用其它远程代理,这里就填代理地址就行,格式 `地址,端口`,比如使用了类似的其他软件,假如它监听在本地的10000端口,则此时应该填写`127.0.0.1,10000`。同时Link Containers 一栏留空。 -* Access Log: 是否在日志中显示访问记录 -* Volumes - certs: SSL 证书的存放目录,应该包含上面所填写的 Domain 的两个文件: Domain.key 和 Domain.crt,(证书和私钥按格式匹配,只需保证目录下分别存在以.crt和.key为后缀的两个文件即可)。 -* Link Containers - backend: 这儿可以选择上面创建的 squid,如果不使用squid而使用其他软件,则此栏留空。 - -安装即可,然后你就有一个非常安全的 HTTPS 代理了。开始配置客户端吧。 - -## 客户端 - -### Chrome - -Chrome 支持HTTP2,可以使用 Proxy SwitchyOmega 来使用 - -点击Proxy SwitchyOmega,单击“选项”,左侧菜单选择“新建情景模式”,模式名称随意,模式类型选择“代理服务器”并点击创建。在右侧,代理协议选择https,代理服务器填写你的域名,端口填写你在nghttpx设置的端口。保存即可使用 - -### Surge - -``` -http2s = http, my.server.com, 443, Squid用户名, Squid密码, tls=true -``` -- 使用https代理例如nghttpx+squid的时候.surge代理测试以及邮箱协议不可用都属于正常情况.因为https代理不支持 - - diff --git a/zh/proxy/ocserv.md b/zh/proxy/ocserv.md deleted file mode 100644 index c7665f6..0000000 --- a/zh/proxy/ocserv.md +++ /dev/null @@ -1,49 +0,0 @@ -# OpenConnect (AnyConnect 服务端)配置教程 - - -## HyperApp 配置 - - - -* Port: 端口,一般为443,也可以改成别的端口 -* Domain: 填写你服务器的IP地址或者域名 -* Username:用户名 -* Password:密码 -* Create self-signed certificate: 使用自签服务器证书。如果你使用IP访问或者你的域名没有SSL证书则选中此项(默认选中)否则请关闭。 -* Network:客户端连接后分配的IP地址 - -### 使用自定义服务器证书 - -注意:使用自定义服务器证书需要关闭上面的 `Create self-signed certificate` 选项。 - -certs: 这儿默认使用 `Nginx SSL Support` 的证书保存目录。如果你想用 `Nginx SSL Support` 保管证书等待自动生成证书即可,不需要额外配置。如果你想使用自定义证书则需要在这个目录下提供两个文件,这儿的 Domain 需要和上面配置的 IP或者域名一致。 - -* `DOMAIN.crt`: 证书文件,如 `my.com.crt` -* `DOMAIN.key`: 密钥文件,如 `my.com.key` - -### 自签证书和使用 LetsEncrypt 证书的区别 - -使用自签证书时,Cisco AnyConnect 每次连接开始时都会弹出安全警告,验证成功后还会再次弹出一遍警告。但是用 `Nginx SSL Support` 生成的证书就不会。 - - -## 客户端配置 - -### 下载客户端 - -* iOS/Android: 搜索 Cisco AnyConnect -* Mac/Windows: [Cisco 官网下载地址 (需要注册)](http://www.cisco.com/c/en/us/support/security/anyconnect-secure-mobility-client/tsd-products-support-series-home.html) -* [V2EX 网友维护的下载](https://dl.xxshe.com/) - -### 连接服务器 - -在客户端中通过域名或者IP连接即可,如果你更改了默认的443端口则填入 `IP:PORT` 或者 `Domain:PORT` 的形式。随后一次输入用户名 密码即可。 - -### 使用证书登录 - -使用密码登录时每次重连都需要输入密码有点不方便,使用证书登录就方便很多。 - -你可以在上面配置界面 `certs` 所选的 `/srv/docker/certs` 目录下找到一个 `*.p12` 文件,格式为 `用户名@域名.p12` 将这个文件下载到系统中,Mac上可以用 `钥匙串访问` 直接打开,然后选择导入证书,密码为上面配置的密码。 - -导入后点击连接就会自动认证了,不需要手动填写密码。 - - diff --git a/zh/proxy/panel.md b/zh/proxy/panel.md deleted file mode 100644 index 75ea2bf..0000000 --- a/zh/proxy/panel.md +++ /dev/null @@ -1,73 +0,0 @@ -# SSPANEL轻松搭建教程 - -> 有时候出于要分享爱国线路.或者想对线路进行全自动化管理的时候.用hyperapp一个个进行部署可能稍显麻烦.~~逼格也不够高~~今天给大家介绍sspanel的搭建方法 - -## 本文原文链接为 https://vinga.fun/panel 本篇不一定为最新版本 - -## 请完整仔细认真阅读完本教程再动手! - -## 流程介绍 - -1. **配置安装数据库(MySQL/MariaDB+Redis)** -2. **配置安装sspanel前端** -3. **登陆管理面板增加节点** -4. **配置安装sspanel后端** -5. **大功告成** - -## 准备工作 - -1. **已经默认安装好Nginx以及Nginx SSL Support的Hyperapp** -2. **耐心耐心耐心** - -## 配置安装MariaDB数据库 - -* **此处使用MariaDB进行配置.选用MySQL配置完全一样.根据个人喜好选择** -* **请确保你填写的内容跟图片完全一致(除root密码)** - ![](../images/panel-1.jpg) -* **配置好数据库就可以点击保存然后安装了.但是安装要注意.由于数据库镜像比较大下载需要一定时间.请耐心等待安装完毕才切换应用.** - -## 配置安装Redis数据库 - -* **商店中找到Redis.使用默认配置进行安装如图保持默认配置.** - ![](../images/panel-2.jpg) -* **保存之后就可以安装了.同样耐心等待** - - -## 配置安装SSPANEL前端 - -* **商店中找到`sspanel`并选择服务器.进入设置界面** -* **按照下图中的提示来填写.没有提示的地方请保持跟我一样** - ![](../images/panel-3.jpg) -* **mysql和myredis两个要选择对应的已经启动的mariadb和redis应用** - -## 登陆后台进行节点配置 - -1. **等待Nginx自动签发好证书之后访问你的panel.** -2. **右上角更多选择登陆.填写Admin邮箱和Admin密码登陆.进去之后左边点击管理面板进入后台.再点击节点来到节点添加** - ![](../images/panel-4.jpg) - -3. **节点地址填写后端的ip地址.有域名的话填写域名也可以.节点名字和信息任意自定义** -* **注意添加节点这一步一定要在部署后端之前.因为要获取NODEID.后端需要这个ID来连接** -4. **添加完毕之后第一栏的`#X`那个X就是我刚才说的ID.** - -## 配置安装SSPANEL后端 - -* **商店里面找到`sspanel ssr`选择服务器并且进入设置页面并按照下图配置.** -* **MU URL的完整格式是`https://你的域名/mu/v2`要注意只替换域名.其他保留** -* **Node ID就是上面说的ID** -* **Mu Token是指设置sspanel那个在管理员密码下面的key** - ![](../images/panel-5.jpg) -* **保存并安装即可完成部署** - -## 大功告成! - -**去面板那里使用连接信息登陆吧!** - - -## 写在最后 - -* 写了这么久.如果能有所收获那就是我最大的荣幸了:) -* 如果可以的话.可以关注一下 https://vinga.fun 这是我的私人博客地址:) -* 如有问题可发邮件至我邮箱fanalcest@gmail.com联系或telegram@fanvinga - -banner diff --git a/zh/proxy/ss-libev.md b/zh/proxy/ss-libev.md deleted file mode 100644 index f72a9dc..0000000 --- a/zh/proxy/ss-libev.md +++ /dev/null @@ -1,44 +0,0 @@ -# 使用 HyperApp 一键搭建科学上网环境 - - -### 前提 - -搭建科学上网的前提是你有一台国外的 VPS - -### 添加服务器 - -首先参考 [如何添加服务器](./Add-Server.md) 把您的服务器添加到 HyperApp 中 - -### 安装 SS - -1. 在商店中选择任意一个 SS,并选择一台服务器 - -![创建应用](../images/wall/create.png) - -2. 点击 Create App 后进入配置页面,按照下面的配置填写: - * Port: 端口号 - * Password:密码 - * Encrypt:加密方式,推荐 chacha20 - * Timeout:连接超时时间,默认300 - * DNS Addr: DNS 服务器,默认8.8.8.8 - * OBFS: 使用混淆 - -![config](../images/wall/config.png) - -3. 在 Apps 页面,点击应用卡片中的服务器名字,会弹出动作列表,点击安装就可以自动将应用部署到服务器上去了。 - -![install](../images/wall/install.png) - -4. 现在打开 SS 客户端,填入服务器地址、端口、密码、加密方式 是不是已经可以用了! - -注意:如果您使用 GCE/AWS 等,需要手动在防火墙中打开端口 - -### SS 客户端下载地址 - -- Windows客户端 [下载地址](https://github.com/shadowsocks/shadowsocks-windows/releases) -- Android客户端 [下载地址](https://play.google.com/store/apps/details?id=com.github.shadowsocks&hl=en) -- IOS客户端 - - [Shadowrocket](https://itunes.apple.com/us/app/shadowrocket/id932747118?mt=8) - - [Quantumult](https://itunes.apple.com/us/app/quantumult/id1252015438?mt=8) - - [Surge](https://itunes.apple.com/us/app/surge-web-developer-tool-and-proxy-utility/id1040100637?mt=8) - diff --git a/zh/proxy/sspanel.md b/zh/proxy/sspanel.md deleted file mode 100644 index ec35026..0000000 --- a/zh/proxy/sspanel.md +++ /dev/null @@ -1,33 +0,0 @@ -# SS-Panel 安装教程 - - -## 服务器安装 - -### 安装依赖 - -* MySQL -* redis - -注意,如果你是第一次安装 MySQL,可以在安装界面数据库那里填一个数据库 `ss-panel` 这样就会自动创建一个数据库。否则你需要用 `phpMyAdmin` 或者手动创建一个数据库给 `ss-panel` 用。 - -### 安装 ss-panel - - - - -* Migration: 第一次安装时需要选中该选项,告诉 `ss-panel` 运行后初始化表格和数据。 -* Admin Email/Pass: 创建一个管理员账号。 -* MU Token: MU api token (可选) -* Port: 选择一个端口(如果你用nginx 反代这儿可以不填) -* Database:数据库名字 -* User: 数据库用户 -* Password 数据库密码 - -Link Containers: -* mysql: 选择一个 MySQL 应用(必选) -* redis: 选择一个 redis 应用(必选) - - -然后安装即可! - - diff --git a/zh/telegram-web.md b/zh/telegram-web.md deleted file mode 100644 index b8b0d0e..0000000 --- a/zh/telegram-web.md +++ /dev/null @@ -1,75 +0,0 @@ -# Telegram Web 教程 - -简介:Telegram Web是利用Telegram官方API实现的自托管的网页版Telegram客户端,其地位类似于微信网页版与微信客户端 - -## 申请Telegram API - -首先Google搜索关键如下图的关键词,点击第一个结果 - - - -进入网页之后点击箭头所示的"Getting Started" - - - -再点击"API Development Tools" - - - -再填写完手机号成功登陆之后选择"Getting my application",填写完相关信息即可得到API,其中我们将要用到的是api_id和api_hash - - - -## HyperApp 服务端配置 - -- 在安装`Telegram Web`前,需要先安装`Nginx Proxy`和`Nginx SSL Support`,它们俩的参数不需要变动。 - -- 首先打开HyperApp在应用中找到Telegram Web,填写相关配置: - -``` -"Api_id"和"Api_hash" 填写刚才申请到的值 -"Hostname" 填写你的域名 -"Port" 填写你的端口(注意此端口不要和Nginx监听的80和443端口冲突,此处我们选择8888端口为例) -``` - -- 再展开"Show Nginx and SSL options"选项 - -``` -"Custom Domain" 填写你的域名 -"Port"                         填写的和上面端口一致的端口,本例为8888 -"HTTPS"                         推荐选择"Redirect http to https" -``` - -- 再来到"Nginx SSL Support"选项下 - -``` -"Domain" 填写你的域名 - "Email" 填写你的邮箱 -``` -全部填写好的示意图如下: - - - -## 防火墙配置 - -- CentOS -``` -firewall-cmd --add-port=80/tcp --permanent -firewall-cmd --add-port=443/tcp --permanent -firewall-cmd --reload -``` -- Ubuntu -``` -sudo ufw allow 80 -sudo ufw allow 443 -``` - -## 使用Telegram Web - -打开浏览器,键入你的域名,回车即可看到Telegram Web的页面 - - - -输入手机号码和其他客户端一样登陆即可开始聊天。 - -大功告成! diff --git a/zh/telegram.md b/zh/telegram.md deleted file mode 100644 index ad279f8..0000000 --- a/zh/telegram.md +++ /dev/null @@ -1,46 +0,0 @@ -# 免爱国Telegram-Web部署教程 - -> 最近身边有些朋友看我玩Telmgran觉得很不错.也 想加入.但是苦于要爱国上网.那么今天给大家带来一篇搭建免爱国Telegram客户端教程 - - - -## 本文原文链接 https://vinga.fun/telegram - -## 准备 - -* 一个已经注册过Telegram的手机号 -* 耐心.耐心.耐心 - -## 注册 - -1. **首先我们前往这个网站** [TelegramAppCreate](https://my.telegram.org/auth?to=apps)**来获取我们所需要的一些参数.** - ![](./images/tg-1.jpg) -2. **注意需要填写完整格式的手机号码例如`+861234567890`** -3. **验证码一般来说会发送到已登陆设备上面.但也有可能会发送短信验证码.注意查收.** -4. **通过之后来到这个界面 .这时候我们选择**`API Development Tool` - ![](./images/tg-2.jpg) -5. **再下一步会来到一个填写信息的界面.按照个人喜好来填写.我这里因为注册过一个了.当时没有截图就不提供图片了.** -6. **提交信息之后会到下一个界面.长这个样子.把App api_id以及App api_hash复制备用** - ![](./images/tg-3.jpg) - -## 服务端配置 - -![](./images/tg-4.jpg) - -* **按照图中所提示的进行配置.** -* **请确认你已经按照默认配置正常安装并启动了Nginx Proxy以及Nginx SSL Support.** -* **确认你的域名已经解析正确.可以通过ping来验证`ping 你的域名`只要返回一个正确ip即为成功** -* **然后保存配置并且安装.** - - -## 大功告成 - -**现在去访问你的域名吧!** - -## 写在最后 - -* 写了这么久.如果能有所收获那就是我最大的荣幸了:) -* 如果可以的话.可以关注一下 https://vinga.fun 这是我的私人博客地址:) -* 如有问题可发邮件至我邮箱fanalcest@gmail.com联系或telegram@fanvinga - -banner