81

使用 pve 安装 alpine 系统

 2 years ago
source link: https://sxy91.com/posts/alpine/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

使用 pve 安装 alpine 系统

2022-02-16 宋洋葱 宋洋葱

pve 创建虚拟机

下载VIRTUAL 版本下的 alpine-virt-x86_64.iso 镜像文件。

用 pve 创建一个虚拟机,挂载刚刚下载的镜像。(别忘了增加串口0)

网页上的 console 不方便粘贴复制命令,启动后,在 pve 机器终端用 qm 命令连接 alpine 的终端。然后参考 安装 alpine 教程进行安装,键盘布局选择

# 之后按 control-O 退出终端)
qm terminal 101 -iface serial0
# 回车
setup-alpine
# 键盘布局,几乎都是 QWERTY 布局
Select keyboard layout: [none] us
# 我比较常用 mac 电脑,Windows 的布局直接使用 us
Select variant (or 'abort'): us-mac
# hostname 随意
Enter system hostname (fully qualified form, e.g. 'foo.example.org') [localhost] apline-test
# 时区配置
Which timezone are you in? ('?' for list) [UTC] Asia/Shanghai
# 镜像选择 
Available mirrors:
...
16) mirrors.tuna.tsinghua.edu.cn # 清华
...
57) mirrors.aliyun.com # 阿里云
...

Enter mirror number (1-72) or URL to add (or r/f/e/done) [1] 16
# 参数说明
# r) 从上面的列表中添加随机数
# f) 从上面的列表中检测并添加最快的镜像
# e) 使用文本编辑器编辑 /etc/apk/repositories
# 选择 f 会所有镜像测一遍,比较慢。直接输入 16 或者 57
# 安装到哪个磁盘
Which disk(s) would you like to use? (or '?' for help or 'none') [none] sda
# 安装类型 
How would you like to use it? ('sys', 'data', 'crypt', 'lvm' or '?' for help) [?] sys
# 最后是否格式化 sda 选择 y。否则会安装失败。
WARNING: Erase the above disk(s) and continue? (y/n) [n]  y
# 重启
reboot

开启启动、换源、root远程访问

如需开机启动,在 pve 的 options 界面中把 start at boot 设置成 yes。

后期如需更改源,请参考教程

# 开启 root 用户远程管理
echo "PermitRootLogin  yes" >> /etc/ssh/sshd_config

如果没有在安装是指定时区,可以通过如下方法更改。

date
apk add tzdata
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo "Asia/Shanghai" > /etc/timezone
apk del tzdata
date

nginx 的安装和使用

nginx 安装和配置

# 安装 vim、nginx
apk add vim nginx nginx-mod-stream
# 需要手动安装 stream 模块
# 否则报错 nginx: [emerg] unknown directive "stream" in

cd /etc/nginx
# 备份文件
mv nginx.conf nginx.conf.bak
# 方便修改去掉注释行
grep -v "#" nginx.conf.bak > nginx.conf 
# 最后增加一行
mkdir tcp.d
echo "include /etc/nginx/tcp.d/*.conf;" >> nginx.conf 

stream 配置

# vi tcp.d/pve.conf
# pve.conf
stream{
    upstream pve{
        hash $remote_addr consistent;
        server 	10.0.0.113:8006 max_fails=3 fail_timeout=10s;  
    }
    server{
        listen 8006;
        proxy_connect_timeout 20s;
        proxy_timeout 5m;
        proxy_pass pve;
    }
}

http 反向代理配置

# cat http.d/default.conf
server{
    listen 5000; # dsm
    location / {
            proxy_pass http://10.0.0.117:5000;
    }
}

server{                                          
    listen 9117; # JackettAPI     
    location / {     
            proxy_pass http://10.0.0.117:9117;
    }                               
} 

重启 nginx

nginx -t
nginx -s reload

wireguard 的安装和配置

apk add -U wireguard-tools

cd /etc/wireguard && wg genkey | tee privatekey | wg pubkey > publickey
cat /etc/wireguard/publickey 
vi wg0.conf

[Interface]
Address = 10.0.8.2
SaveConfig = true
ListenPort = 49152
PrivateKey = 当前私钥

[Peer]
PublicKey = 公网的公钥
Endpoint = 你的公网:49152
AllowedIPs = 10.0.8.0/24    
# Send periodic keepalives to ensure connection stays up behind NAT.
# 25 秒触发一次
PersistentKeepalive = 25

启动 wg-quick up wg0

Alpine 中的 systemctl

Alpine 没有 systemctl 之类的工具,相似的工具是 awall

# apk update && apk upgrade
## Install both IPv4 and IPv6 version of IPtables ##
# apk add ip6tables iptables
## Install awall ##
# apk add -u awall
## Verify it ##
# apk version awall

wireguard开机启动

如果客户端在 NAT 之后,当没有活动的数据连接,客户端就是断开,可通过 配置项 PersistentKeepalive “促活”

或者使用脚本

vim /etc/local.d/wg.start

wg-quick up wg0

rc-update add wg

wg-quick up wg0 #启动服务端 wg-quick down wg0 #停止服务端

rc-service wg start rc-service wg stop

配置 nginx udp 端口转发

nginx 开机启动 rc-update add nginx rc-service nginx status rc-service nginx start

来发评论吧~
Powered By Valine
v1.4.18

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK