小白自用脚本
```
HOST=xxx
PORT=63196
UUID=154beaa4-3e00-4045-82a6-5a75e0dab833
# install docker
sudo apt-get remove docker docker-engine
docker.io containerd runc
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL
https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg]
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli
containerd.io docker-compose-plugin
# install v2ray
sudo mkdir -p /etc/v2ray/
sudo touch /etc/v2ray/config.json
sudo echo "{
\"inbounds\": [
{
\"port\": 42299,
\"protocol\": \"vmess\",
\"settings\": {
\"clients\": [
{
\"id\": \"$UUID\",
\"level\": 1,
\"alterId\": 0
}
]
},
\"streamSettings\": {
\"network\": \"ws\",
\"wsSettings\": {
\"path\": \"/tag/game_server\"
}
}
}
],
\"outbounds\": [
{
\"protocol\": \"freedom\",
\"settings\": {}
},
{
\"protocol\": \"blackhole\",
\"settings\": {},
\"tag\": \"blocked\"
}
],
\"routing\": {
\"rules\": [
{
\"type\": \"field\",
\"ip\": [
\"geoip:private\"
],
\"outboundTag\": \"blocked\"
}
]
}
}" > /etc/v2ray/config.json
sudo docker run -d --name v2ray --restart=always -v /etc/v2ray:/etc/v2ray -p 42299:42299 v2fly/v2fly-core:v4.45.2 v2ray -config=/etc/v2ray/config.json
#install ghost
sudo docker run -d --name ghost --restart=always -v /var/lib/ghost/content:/var/lib/ghost/content -e url=https://$HOST -p 2368:2368 ghost:4
#
sudo ufw disable
#install nginx
sudo snap install --classic certbot
certbot certonly --standalone -d $HOST
sudo mkdir -p /etc/nginx/
sudo touch /etc/nginx/nginx.conf
sudo echo "user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
#上传文件最大限制
client_max_body_size 20m;
log_format main '\$remote_addr - \$remote_user [\$time_local] \"\$request\" '
'\$status \$body_bytes_sent \"\$http_referer\" '
'\"\$http_user_agent\" \"\$http_x_forwarded_for\"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
server {
listen $PORT ssl http2;
server_name $HOST;
charset utf-8;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_ecdh_curve secp384r1;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_session_tickets off;
ssl_certificate /etc/letsencrypt/live/$HOST/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$HOST/privkey.pem;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
root /usr/share/nginx/html/www;
# ghost 转发配置
location / {
proxy_pass http://ghost:2368;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header Host \$http_host;
proxy_set_header X-Forwarded-Proto \$scheme;
}
location /tag/game_server {
proxy_redirect off;
proxy_pass http://v2ray:42299;
proxy_http_version 1.1;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection \"upgrade\";
proxy_set_header Host \$HOST;
# Show real IP in v2ray access.log
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
}
}
}" > /etc/nginx/nginx.conf
sudo docker run -d --name nginx -p $PORT:$PORT --link v2ray --link ghost -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf -v /etc/letsencrypt:/etc/letsencrypt -v /var/log/nginx:/var/log/nginx nginx:1.19.4
```