标签归档:教程

Linux一键dd脚本更新,更新Fedora39支持,适用于大部分VPS主机和部分独立服务器

linux一键dd脚本支持Debian 11/12、Ubuntu/20.04、RockyLinux 8/9和AlmaLinux 8/9系统的网络重装,自动适配境内境外系统源(境内使用阿里云,境外使用官方),适用于 GigsGigsCloud、AkkoCloud、GreenCloud、CloudCone和腾讯云等vps、云服务器和部分独立服务器。

本次更新

  • 更新 Fedora 37/38/39 系统DD支持;
  • 移除已结束声明周期的系统版本。

本次更新在测试 CloudCone 洛杉矶3C3G配置中测试可用。

使用命令:

wget -N --no-check-certificate https://down.vpsaff.net/linux/dd/network-reinstall-os.sh && \
chmod +x network-reinstall-os.sh && ./network-reinstall-os.sh

完整说明:https://www.idcoffer.com/archives/4870

几秒去除ProxmoxVE6.x~8.x无效订阅教程

Proxmox VE是一个企业级虚拟化平台,该平台集成了基于内核的虚拟机管理程序(KVM)和基于Linux容器(LXC)这两种虚拟化技术,同时还集成了软件定义存储和虚拟网络功能。 借助Web的管理界面工具,可以轻松地管理和配置虚拟机、容器、高可用性集群、软件定义存储、虚拟网络以及备份等。

在我们安装完成后登陆的时候如果不是订阅用户默认会提示一个讨人烦的信息:

没有有效的订阅  You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of available options.

去除方法:

连接上SSH,执行以下命令:

sed -i_orig "s/data.status === 'Active'/true/g" /usr/share/pve-manager/js/pvemanagerlib.js
sed -i_orig "s/if (res === null || res === undefined || \!res || res/if(/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
sed -i_orig "s/.data.status.toLowerCase() !== 'active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

确认无误后,执行:

systemctl restart pveproxy

如果不生效需要重启服务器

reboot

CentOS8如何安装DockerCE最新版

由于官方源并不能够直接支持CentOS 8,经过多次实践,终于成功安装!暂无发现运行异常,简单写了一下 CentOS 8 安装 Docker CE 最新版的教程分享经验。如果有什么遗漏或者有更好建议,请给站长留言。

安装

1、添加 Docker CE 源

wget https://download.docker.com/linux/centos/docker-ce.repo
sudo mv docker-ce.repo /etc/yum.repos.d/docker-ce.repo

2、安装1.2.2-3或者更高版本的containerd.io

sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm

3、安装 Docker CE 最新版

sudo yum install docker-ce docker-ce-cli

4、启动 Docker CE 服务

#启动 docker
sudo systemctl start docker
#设置 docker 自启动
sudo systemctl enable docker

查看 Docker CE 版本

docker -v

5、添加 docker0 到防火墙trusted区域(可选)

如果你开启了 firewalld,会发现Docker CE之的容器内部无法访问外网,把 docker0 添加到防火墙的信任区域(trusted)即可。

sudo firewall-cmd --permanent --zone=trusted  --add-interface=docker0
sudo firewall-cmd --reload

Docker部署trojan服务最新版简单教程

前不久写了Docker 部署 Shadowsocks-libev和v2ray的教程,趁今晚有时间,补上群友一直想要的Docker 部署 trojan 服务端的教程。

一、创建 Dockerfile

mkdir trojan && cd trojan
vi Dockerfile

复制粘贴:

FROM alpine

RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone

RUN apk add --no-cache --virtual .build-deps \
        wget \
		tar \
		curl \
		build-base \
        cmake \
        boost-dev \
		openssl \
        openssl-dev \
        mariadb-connector-c-dev \
	&& mkdir /tmp/trojan \
	&& cd /tmp/trojan \
	&& wget https://github.com/trojan-gfw/trojan/archive/master.tar.gz -O trojan.tar.gz && tar -zxf trojan.tar.gz && mv -f trojan-master trojan \
    && (cd trojan && cmake . && make -j $(nproc) && strip -s trojan \
    && mv trojan /usr/local/bin) \
    && apk del .build-deps \
	&& cd ~/ && rm -rf /tmp/trojan \
    && apk add --no-cache --virtual .trojan-rundeps \
        libstdc++ \
        boost-system \
        boost-program_options \
        mariadb-connector-c

CMD ["trojan", "/etc/trojan/config.json"]

二、创建 trojan 服务端配置

mkdir /etc/trojan
vi /etc/trojan/config.json

复制粘贴:

{
    "run_type": "server",
    "local_addr": "0.0.0.0、服务器IP或者域名都可以",
    "local_port": 443,
    "remote_addr": "127.0.0.1",
    "remote_port": 80,
    "password": [
        "你的密码,建议带特殊符号"
    ],
    "log_level": 5,
    "ssl": {
        "cert": "/etc/trojan/cert/certificate.crt",
        "key": "/etc/trojan/cert/private.key",
        "key_password": "",
        "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384",
        "cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384",
        "prefer_server_cipher": true,
        "alpn": [
            "http/1.1"
        ],
        "alpn_port_override": {
            "h2": 81
        },
        "reuse_session": true,
        "session_ticket": false,
        "session_timeout": 600,
        "plain_http_response": "",
        "curves": "",
        "dhparam": ""
    },
    "tcp": {
        "prefer_ipv4": false,
        "no_delay": true,
        "keep_alive": true,
        "reuse_port": false,
        "fast_open": false,
        "fast_open_qlen": 20
    },
    "mysql": {
        "enabled": false,
        "server_addr": "127.0.0.1",
        "server_port": 3306,
        "database": "trojan",
        "username": "trojan",
        "password": "",
        "key": "",
        "cert": "",
        "ca": ""
    }
}

其中ssl节点下的cert和key为域名证书路径,需要配置在/etc/trojan/cert路径下,并把域名证书上传到服务器 /etc/trojan/cert文件夹下,文件名需要和配置保持一致。

三、运行 trojan

1、创建镜像

docker build -t trojan .

2、启动容器

docker run --restart=always \
-p 443:443 \
--name=trojan \
-v /etc/trojan:/etc/trojan \
-i -t -d \
trojan

如果服务器上还有v2ray或者网站在运行,可以把端口映射为其他端口,如 -p 8443:443,然后用Apache或者Nginx反代使用443端口。

3、检查容器是否运行正常

docker ps -a

到此可以愉快的使用 trojan 客户端连接了!

关于修改 trojan 配置

执行:

vi /etc/trojan/config.json

修改自己想要的配置参数,保存退出后重启 trojan 容器即可生效

docker restart trojan

Docker部署Shadowsocks-libev服务最新版

网络上很多 Docker 部署 Shadowsocks-libev 服务的教程,但是包括官方没有一个是使用外置 config 文件的,使用参数运行 Shadowsocks-libev 会导致很多麻烦,比如修改密码、加密方式等问题,并且我们不知道第三方的 shadowsocks-libev 镜像究竟有没有夹带“私货”。

一、创建 Dockerfile

mkdir shadowsocks-libev && cd shadowsocks-libev
vi Dockerfile

复制粘贴:

FROM alpine

ENV TZ=Asia/Shanghai
ENV CONFIG_PATH=/etc/shadowsocks-libev/config.json
ENV ARGS=

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN set -ex && \
    apk add --no-cache udns && \
    apk add --no-cache --virtual .build-deps \
                                git \
                                autoconf \
                                automake \
                                make \
                                build-base \
                                curl \
                                libev-dev \
                                c-ares-dev \
                                libtool \
                                linux-headers \
                                libsodium-dev \
                                mbedtls-dev \
                                pcre-dev \
                                tar \
                                udns-dev && \

    cd /tmp/ && \
    git clone https://github.com/shadowsocks/shadowsocks-libev.git && \
    cd shadowsocks-libev && \
    git submodule update --init &&\
    ./autogen.sh && \
    ./configure --prefix=/usr --disable-documentation && \
    make install && \
    cd .. && \

    runDeps="$( \
        scanelf --needed --nobanner /usr/bin/ss-* \
            | awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \
            | xargs -r apk info --installed \
            | sort -u \
    )" && \
    apk add --no-cache --virtual .run-deps $runDeps && \
    apk del .build-deps && \
    rm -rf /tmp/shadowsocks-libev

USER nobody

CMD exec ss-server -c $CONFIG_PATH $ARGS

二、创建 Shadowsocks-libev 配置文件

mkdir /etc/shadowsocks-libev
vi /etc/shadowsocks-libev/config.json

复制粘贴:

{
"server":"0.0.0.0",
"server_port":8388,//修改为你想要的端口,建议不要使用默认端口
"password":"your password",//修改为你想要的密码,建议带特殊字符
"timeout":600,//超时,建议600
"method":"xchacha20-ietf-poly1305",//加密方式
"fast_open":true,
"mode":"tcp_only"//仅tcp,如果需要开启udp请改为:tcp_and_udp
}

三、运行 Shadowsocks-libev

1、创建镜像

docker build -t shadowsocks-libev .

2、启动容器

docker run --restart=always \
--network=host \
--name=shadowsocks-libev \
-v /etc/shadowsocks-libev:/etc/shadowsocks-libev \
-i -t -d \
shadowsocks-libev

到此可以愉快的使用 Shadowsocks 客户端连接了!

关于修改 Shadowsocks-libev 配置

执行:

vi /etc/shadowsocks-libev/config.json

修改自己想要的配置参数,保存退出后重启 shadowsocks-libev 容器即可生效

docker restart shadowsocks-libev

CentOS7/8firewall开启端口转发

近期部分小伙伴为了解锁Netflix等流媒体服务,购买了原生IP的VPS,但是问题来了,原生IP的VPS可能没有优秀的CN2网络,网络速度难以保证。需要通过一台带有CN2网络的VPS进行流量转发,达到在线观看流媒体的目的。

解锁原理:本机 -> CN2 VPS -> 原生IP VPS -> 流媒体服务,流媒体服务商识别为原生IP,从而解锁服务。

一、安装 firewall

yum install -y firewalld

二、启动 firewalld 服务

1、启动 firewalld 服务:

systemctl start firewalld

2、设置 firewalld 服务自启动:

systemctl enable firewalld

三、启用IP伪装

firewall-cmd --permanent --add-masquerade

四、端口转发

例:将8080端口转发到192.168.0.1的8081端口

firewall-cmd --permanent --add-forward-port=port=8080:proto=tcp:toaddr=192.168.0.1:toport=8081
firewall-cmd --permanent --add-forward-port=port=8080:proto=udp:toaddr=192.168.0.1:toport=8081

五、开放端口

例:开放8080端口

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=8080/udp

六、重新加载规则

重新加载防火墙规则,使IP伪装和转发规则生效

firewall-cmd --reload

docker部署v2ray进阶篇–流量伪装websocket+tls+web

上一篇如何在Docker上部署v2ray,简单写了在docker上部署v2ray服务器端的步骤,这次实践利用 nginx 去实现 websocket+tls+web 伪装 v2ray 流量。

一、修改 v2ray 的配置

执行:

vi /etc/v2ray/config.json

在inbounds节点加入:

"streamSettings": {     # 载体配置段,设置为websocket
	"network": "ws",
	"wsSettings": {
	  "path": "/v2wspath"  #设定一个伪装路径
	}
},
"listen": "127.0.0.1"

结果:

{
  "log" : {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "warning"
  },
  "inbounds": [{
    "port": 8001,//端口
    "protocol": "vmess",//传输协议
    "settings": {
      "clients": [
        {
          "id": "466eb1fe-6943-4935-b893-9e8adb3c6b00",//这里GUID请通过工具生成
          "level": 1,
          "alterId": 64
        }
      ]
    },
    "streamSettings": {
        "network": "ws",
        "wsSettings": {
          "path": "/v2wspath"  #设定一个伪装路径,可以任意合法路径
        }
    },
    "listen": "127.0.0.1"
  }],
  "outbounds": [{
    "protocol": "freedom",
    "settings": {}
  }]
}

重启 v2ray,使配置生效

docker restart v2ray

二、安装 nginx

和v2ray一样,我们依然在 docker 部署 nginx 最新稳定版。

1、用docker 拉取 nginx 最新稳定版

docker pull nginx:stable

2、创建 nginx 运行所需文件夹

mkdir /etc/nginx
mkdir /etc/nginx/certs
mkdir /etc/nginx/conf.d
mkdir /var/log/nginx
mkdir /var/log/nginx/v2ray
mkdir /usr/share/nginx
mkdir /usr/share/nginx/v2ray

3、创建 nginx 配置文件

vi /etc/nginx/conf.d/v2ray.conf

拷贝粘贴:

server {
	listen 80 default_server;
	listen [::]:80 default_server;
	server_name 这里输入你的域名;
	
	rewrite  ^/(.*)$  https://这里输入你的域名/$1  permanent;
}

server {
	listen 443 ssl;
	
	server_name 这里输入你的域名;
	
	ssl_certificate  certs/你的域名证书.crt;
	ssl_certificate_key certs/你的域名证书.key;
	ssl_session_timeout 5m;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
	ssl_protocols TLSv1.1 TLSv1.2;
	ssl_prefer_server_ciphers on;
	
	root /usr/share/nginx/v2ray;
	location / {
		index  index.html;
	}
   
 	location /v2wspath { # 与 V2Ray 配置中的 path 保持一致
		proxy_redirect off;
		proxy_pass http://127.0.0.1:8001; #这里输入v2ray监听的端口号;
		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;
	}
}

4、上传域名证书到服务器 /etc/nginx/certs 文件夹下

二、启动 nginx

docker run \
--restart=always \
--name=nginx \
--net=host \
-v /etc/nginx/certs:/etc/nginx/certs \
-v /etc/nginx/conf.d:/etc/nginx/conf.d \
-v /var/log/nginx/v2ray:/var/log/nginx/v2ray \
-v /usr/share/nginx/v2ray:/usr/share/nginx/v2ray \
-i -t -d \
nginx:stable

三、配置客户端

大功告成!

请严格遵守当地法律法规,严禁用于违法用途!

docker 部署 v2ray 进阶篇 – 流量伪装 websocket+tls+web

上一篇如何在Docker上部署v2ray,简单写了在docker上部署v2ray服务器端的步骤,这次实践利用 nginx 去实现 websocket+tls+web 伪装 v2ray 流量。

一、修改 v2ray 的配置

执行:

vi /etc/v2ray/config.json

在inbounds节点加入:

"streamSettings": {     # 载体配置段,设置为websocket
	"network": "ws",
	"wsSettings": {
	  "path": "/v2wspath"  #设定一个伪装路径
	}
},
"listen": "127.0.0.1"

结果:

{
  "log" : {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "warning"
  },
  "inbounds": [{
    "port": 8001,//端口
    "protocol": "vmess",//传输协议
    "settings": {
      "clients": [
        {
          "id": "466eb1fe-6943-4935-b893-9e8adb3c6b00",//这里GUID请通过工具生成
          "level": 1,
          "alterId": 64
        }
      ]
    },
    "streamSettings": {
        "network": "ws",
        "wsSettings": {
          "path": "/v2wspath"  #设定一个伪装路径,可以任意合法路径
        }
    },
    "listen": "127.0.0.1"
  }],
  "outbounds": [{
    "protocol": "freedom",
    "settings": {}
  }]
}

重启 v2ray,使配置生效

docker restart v2ray

二、安装 nginx

和v2ray一样,我们依然在 docker 部署 nginx 最新稳定版。

1、用docker 拉取 nginx 最新稳定版

docker pull nginx:stable

2、创建 nginx 运行所需文件夹

mkdir /etc/nginx
mkdir /etc/nginx/certs
mkdir /etc/nginx/conf.d
mkdir /var/log/nginx
mkdir /var/log/nginx/v2ray
mkdir /usr/share/nginx
mkdir /usr/share/nginx/v2ray

3、创建 nginx 配置文件

vi /etc/nginx/conf.d/v2ray.conf

拷贝粘贴:

server {
	listen 80 default_server;
	listen [::]:80 default_server;
	server_name 这里输入你的域名;
	
	rewrite  ^/(.*)$  https://这里输入你的域名/$1  permanent;
}

server {
	listen 443 ssl;
	
	server_name 这里输入你的域名;
	
	ssl_certificate  certs/你的域名证书.crt;
	ssl_certificate_key certs/你的域名证书.key;
	ssl_session_timeout 5m;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
	ssl_protocols TLSv1.1 TLSv1.2;
	ssl_prefer_server_ciphers on;
	
	root /usr/share/nginx/v2ray;
	location / {
		index  index.html;
	}
   
 	location /v2wspath { # 与 V2Ray 配置中的 path 保持一致
		proxy_redirect off;
		proxy_pass http://127.0.0.1:8001; #这里输入v2ray监听的端口号;
		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;
	}
}

4、上传域名证书到服务器 /etc/nginx/certs 文件夹下

二、启动 nginx

docker run \
--restart=always \
--name=nginx \
--net=host \
-v /etc/nginx/certs:/etc/nginx/certs \
-v /etc/nginx/conf.d:/etc/nginx/conf.d \
-v /var/log/nginx/v2ray:/var/log/nginx/v2ray \
-v /usr/share/nginx/v2ray:/usr/share/nginx/v2ray \
-i -t -d \
nginx:stable

三、配置客户端

大功告成!

请严格遵守当地法律法规,严禁用于违法用途!

免费获取Xmanager、Xshell和Xftp的License

NetSarang 为了响应COVID-19, 自2020年3月23日起, 被迫在家远程办公人员或者个人可以免费使用Xmanager、Xshell和Xftp的License。 免费许可证可在2020年6月30日之前使用。

申请网址: https://www.netsarang.com/en/free-wfh-license-covid19/

注意:邮箱必须填写真实有效,因为 License 和下载链接是发到你所填写的邮箱!

如何在Docker上部署v2ray服务器端

Project V 是一个工具集合,它可以帮助你打造专属的基础通信网络。Project V 的核心工具称为V2Ray,其主要负责网络协议和功能的实现,与其它 Project V 通信。V2Ray 可以单独运行,也可以和其它工具配合,以提供简便的操作流程。

–引用v2ray官方的原话

今晚尝试了使用docker容器安装当前比较流行的v2ray,流程比较简单,并不复杂。有兴趣的新手可以尝试搭建,老司机请无视。

一、在docker hub上拉取v2ray最新版镜像

docker pull v2ray/official:latest

如果还没有安装Docker怎么办?

Ubuntu 安装 Docker CE:https://www.24kplus.com/linux/427.html

CentOS 7 安装 Docker CE:https://www.24kplus.com/linux/412.html

二、创建v2ray配置

1、创建文件夹,把v2ray配置和日志文件夹创建到本地

mkdir /etc/v2ray
mkdir /var/log/v2ray

2、创建配置

执行:

vi /etc/v2ray/config.json

然后把下面代码拷贝进去

{
  "log" : {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "warning"
  },
  "inbounds": [{
    "port": 8001,//端口
    "protocol": "vmess",//传输协议
    "settings": {
      "clients": [
        {
          "id": "466eb1fe-6943-4935-b893-9e8adb3c6b00",//这里GUID请通过工具生成
          "level": 1,
          "alterId": 64
        }
      ]
    }
  }],
  "outbounds": [{
    "protocol": "freedom",
    "settings": {}
  }]
}

需要注意的是clients节点里的id需要自行生成并替换,生成工具

三、运行v2ray

1、执行以下命令运行

docker run \
--restart=always \
--name=v2ray \
--net=host \
-v /etc/v2ray/config.json:/etc/v2ray/config.json \
-v /var/log/v2ray:/var/log/v2ray \
-i -t -d \
v2ray/official:latest

-p 为docker容器端口映射,实例中8001为v2ray默认生成端口,可以自行更改成想要的端口,本地端口:容器端口

-v 为docker容器路径映射,支持文件和文件夹,本地路径:容器路径

2、检查当前运行状态

docker container ls

好了,在docker上运行v2ray基本完成了,由于时间关系,其他进阶择日再续。

请严格遵守当地法律法规,严禁用于违法用途!