0%

xray建设

加油!这一次你也是最棒的!!!!

不得不说现在已经到了鬼斧神工的境界了……真的,咱一个大震撼,那么就从头学起吧。目前需要一个 nginx 静态站

xray是v2ray的超集,所以请访问官网获取信息

https://xtls.github.io/

那么先从小白教程开始,用 github 学生包里白嫖了一个域名 https://www.name.com/

然后按照他的要求来 keep server safe 一下

首先unminimize,然后选择不重启服务……

设置 vim 为默认,用 update-alternatives

update-alternatives –config editor 这个是选择默认的程序的symbolic连接,反正用 python 也很好用就对了

修改 /etc/ssh/sshd_config

/ 搜索,n 下一个,N 上一个

允许密钥登陆

PubkeyAuthentication

密码登陆

PasswordAuthentication

sudo systemctl restart ssh

服务器端改了一下配置,client其实有的……

ClientAliveInterval 60

ClientCount 10

检查 bbr

是否是 4.9 以上 uname -r

然后看 这个 lsmod | grep bbr

tcp_bbr 20480 9

这样就是启动了,应该是自动启动的我觉得

证书签名

使用 https://github.com/acmesh-official/acme.sh/ 进行管理

curl https://get.acme.sh | sh -s email=my@example.com

看看什么是 cronjob?

反正是需要先把站点解析好,两个域名都要有对应的 conf file,不然没法成功

nginx

/usr/local/nginx/conf, /etc/nginx, or /usr/local/etc/nginx.

这几个位置可能是配置,nginx -s

  • stop — fast shutdown
  • quit — graceful shutdown
  • reload — reloading the configuration file
  • reopen — reopening the log files

不同的功能

1
2
3
4
5
6
server {
listen 80;
server_name kpl.acyanbird.rocks;
root /home/xray/sites;
index index.html;
}

index 指的是后面不跟任何的时候自动引导到这个,可以多项,按照顺序查找

root,到底在哪里

sites-enables 和 sites-available 之后再说,这个方便多个站点管理

使用 ln -s A B,将 A 连接到 B,一定要都用绝对路径

sudo ln -s A B

如果要删除,先 unlink A,再删除 B

nginx -t 检查配置

结果很久都是 permission denied,要把所有的 directory 的权限都更改为 755

ps aux | grep nginx

ps: snapshot of running processes

aux

1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。

3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。

4)ps -e 此参数的效果和指定”A”参数相同。

5)ps e 列出程序时,显示每个程序所使用的环境变量。

6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。

7)ps -H 显示树状结构,表示程序间的相互关系。

8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。

9)ps s 采用程序信号的格式显示程序状况。

10)ps S 列出程序时,包括已中断的子程序资料。

11)ps -t <终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。

12)ps u   以用户为主的格式来显示程序状况。

13)ps x   显示所有程序,不以终端机来区分。

| grep,反正就是显示符合的进程

cloudreve

总之先搞一下这个……才能都 enable 嘛

下载,展开,然后执行。存储admin的用户名和密码

https://docs.cloudreve.org/getting-started/install

参考这个

你妈的,不支持共享,删除了

nextcloud

我回来了(

新建了一个server listen 到 8800,但是疯狂 404……为什么呢?如果是 8800 的话,那么就直接下载了文件desu。直接 listen 到 80 就可以了,他们会自己导航的

没有加 index 的话会自动 forbidden 的呢~

让它使用 php

sudo systemctl status php8.1-fpm

先安装,然后查看是不是在跑……

fmp stand for (FastCGI Process Manager)

然后查看 available 里面的配置,可以看到……pass php 的设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
server {
listen 80;
server_name pan.acyanbird.rocks;
root /home/xray/cloud;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
#
fastcgi_pass unix:/run/php/php-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
}

啊,记得 uncomment 掉include,pass,然后看一眼 /run/php/ 里面的版本,一般来说删掉版本号就可

我安装了 phpmyadmin……我已经懵逼了,反正写了最熟悉的密码,管他,然后 777 一下当前目录

还是直接安装了 zip 包,然后调整一下路径……

安装一下 mariadb

root 没有密码啊,然后 follow 了这个

https://zhuanlan.zhihu.com/p/141988967

有了管理员账号了

GRANT ALL PRIVILEGES ON . TO ‘admin‘@’localhost’ IDENTIFIED BY ‘As’;

我放弃了,snap

算了 snap 不能配置 nginx……

mysql drop 一下 nextcloud 吧

show databases;

drop database nextcloud;

https://docs.nextcloud.com/server/21/admin_manual/installation/example_ubuntu.html

跟随这个设置

php -m 检查 moudule,我们从头开始……

apt install php-<moudule名字> 大部分时候 work

更改/etc/php/版本号/fpm/pool.d/www.conf

不注释 clear_env = no

让 path 正常什么的

更改 /etc/php/8.1/fpm php.ini

upload_max_filesize and post_max_size

然后要自己创建 nextcloud,还有用户

CREATE USER ‘username‘@’localhost’ IDENTIFIED BY ‘password’;
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO ‘username‘@’localhost’;
FLUSH PRIVILEGES;

1396,用户已经存在 drop user name@localhost;

unzip lastest,更改一下所属 sudo chown -R www-data:www-data ~/cloud/nextcloud

上面输入自己的用户名,下面输入刚刚创造的用户?

server , root 下面添加,方便排查

    access_log /home/xray/cloud/log/access.log;
    error_log /home/xray/cloud/log/error.log;

403 forbidden,加上 autoindex on,显示整个目录。所以这个安装还是不行的啊……

我还是用命令行吧,看得清楚哪里有问题

sudo -u www-data php occ

occ 是 nextcloud 自己的东西嘛……想想看(

我放弃了,脚本万岁

不知道为什么,可能是中途断掉了连接,所以update list 不见了

W: Unable to read /etc/apt/sources.list.d/ - DirectoryExists (2: No such file or directory)

跑到目录里面,把 sources.list.bak 复制回来

更新到最新之后,n2rayng,选择脚本的15查看配置,一点一点搞上去 。

然后是 linux 自己的安装了……其实是支持本地文件的

sudo bash Xray-install.sh -l Xray-linux-64.zip

这样就可以了

然后调整脚本,我直接用的网站给的范例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
// REFERENCE:
// https://github.com/XTLS/Xray-examples
// https://xtls.github.io/config/

// 常用的config文件,不论服务器端还是客户端,都有5个部分。外加小小白解读:
// ┌─ 1_log 日志设置 - 日志写什么,写哪里(出错时有据可查)
// ├─ 2_dns DNS-设置 - DNS怎么查(防DNS污染、防偷窥、避免国内外站匹配到国外服务器等)
// ├─ 3_routing 分流设置 - 流量怎么分类处理(是否过滤广告、是否国内外分流)
// ├─ 4_inbounds 入站设置 - 什么流量可以流入Xray
// └─ 5_outbounds 出站设置 - 流出Xray的流量往哪里去

{
// 1_日志设置
// 注意,本例中我默认注释掉了日志文件,因为windows, macOS, Linux 需要写不同的路径,请自行配置
"log": {
"access": "/var/log/xray/access.log", // 访问记录
"error": "/var/log/xray/error.log", // 错误记录
"loglevel": "warning" // 内容从少到多: "none", "error", "warning", "info", "debug"
},

// 2_DNS设置
"dns": {
"servers": [
// 2.1 国外域名使用国外DNS查询
{
"address": "1.1.1.1",
"domains": ["geosite:geolocation-!cn"]
},
// 2.2 国内域名使用国内DNS查询,并期待返回国内的IP,若不是国内IP则舍弃,用下一个查询
{
"address": "223.5.5.5",
"domains": ["geosite:cn"],
"expectIPs": ["geoip:cn"]
},
// 2.3 作为2.2的备份,对国内网站进行二次查询
{
"address": "114.114.114.114",
"domains": ["geosite:cn"]
},
// 2.4 最后的备份,上面全部失败时,用本机DNS查询
"localhost"
]
},

// 3_分流设置
// 所谓分流,就是将符合否个条件的流量,用指定`tag`的出站协议去处理(对应配置的5.x内容)
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [

// 3.2 国内域名直连
{
"type": "field",
"domain": ["geosite:cn"],
"outboundTag": "direct"
},
// 3.1 广告域名屏蔽
{
"type": "field",
"domain": ["geosite:category-ads-all"],
"outboundTag": "block"
},
// 3.3 国内IP直连
{
"type": "field",
"ip": ["geoip:cn", "geoip:private"],
"outboundTag": "direct"
},
// 3.4 国外域名代理
{
"type": "field",
"domain": ["geosite:geolocation-!cn"],
"outboundTag": "proxy"
},
// 3.5 默认规则
// 在Xray中,任何不符合上述路由规则的流量,都会默认使用【第一个outbound(5.1)】的设置,所以一定要把转发VPS的outbound放第一个
// 3.6 走国内"223.5.5.5"的DNS查询流量分流走direct出站
{
"type": "field",
"ip": ["223.5.5.5"],
"outboundTag": "direct"
}
]
},

// 4_入站设置
"inbounds": [
// 4.1 一般都默认使用socks5协议作本地转发
{
"tag": "socks-in",
"protocol": "socks",
"listen": "127.0.0.1", // 这个是通过socks5协议做本地转发的地址
"port": 1080, // 这个是通过socks5协议做本地转发的端口
"settings": {
"udp": true
}
},
// 4.2 有少数APP不兼容socks协议,需要用http协议做转发,则可以用下面的端口
{
"tag": "http-in",
"protocol": "http",
"listen": "127.0.0.1", // 这个是通过http协议做本地转发的地址
"port": 1081 // 这个是通过http协议做本地转发的端口
}
],

// 5_出站设置
"outbounds": [
// 5.1 默认转发VPS
// 一定放在第一个,在routing 3.5 里面已经说明了,这等于是默认规则,所有不符合任何规则的流量都走这个
{
"tag": "proxy",
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "pan.acyanbird.rocks", // 替换成你的真实域名
"port": 443,
"users": [
{
"id": "uuid", // 和服务器端的一致
"flow": "xtls-rprx-vision",
"encryption": "none",
"level": 0
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"serverName": "pan.acyanbird.rocks", // 替换成你的真实域名
"allowInsecure": false, // 禁止不安全证书
"fingerprint": "chrome" // 通过 uTLS 库 模拟 Chrome / Firefox / Safari 或随机生成的指纹
}
}
},
// 5.2 用`freedom`协议直连出站,即当routing中指定'direct'流出时,调用这个协议做处理
{
"tag": "direct",
"protocol": "freedom"
},
// 5.3 用`blackhole`协议屏蔽流量,即当routing中指定'block'时,调用这个协议做处理
{
"tag": "block",
"protocol": "blackhole"
}
]
}

sudo lsof 才能看到,list open file?要研究一下,为什么是 openfile?

又来 permission denied,修改 system 里面的用户