存档2021

Youtube 视频下载




Youtube 视频下载


youtube-dl


    # wget https://yt-dl.org/downloads/latest/youtube-dl             \\ 下载脚本
    # chmod a+rx youtube-dl                                           \\ 给执行权限
    # ./youtube-dl https://www.youtube.com/
    # ./youtube-dl https://www.youtube.com/  --no-check certificate     \\ 如果提示 ssl 错误

    # ./youtube-dl --write-sub --all-subs https://www.youtube.com/                   \\ 下载视频 及 字幕
    # ./youtube-dl --write-sub --all-subs --skip-download https://www.youtube.com/                 \\ 只下载字幕
    # ./youtube-dl --write-sub --sub-lang en --skip-download https://www.youtube.com/               \\ 只下载字幕
    # ./youtube-dl --write-sub --all-subs --proxy socks5://127.0.0.1:1080 https://www.youtube.com/   \\ 使用代理

        --write-sub           写字幕文件
        --write-auto-sub      编写自动字幕文件(仅限YouTube) 
        --all-subs            下载关于视频的所有字幕 
        --list-subs           列出关于视频所有可用的字幕
        --sub-format FORMAT   字幕格式,接受格式首选项,如"srt"或"ass/srt/best",这个选项一般不指定,因为指定的格式可能没有
        --sub-lange LANGS     要下载字幕的语言(可选),以逗号分隔,事业IETF语言标签,如"en,pt"
        --proxy               要求youtube-dl下载的路线为代理

    # echo 'export youtube-dl=/usr/local/bin/youtube-dl' >> /etc/profile \\ 添加到环境变量     或加环境变量 可直接执行
    # youtube-dl https://www.youtube.com/                                 \\ 直接下载视频 原清晰度 可以下播放列表中所有的视频
    # youtube-dl -F https://www.youtube.com/                               \\ -F 查看视频的清晰度 要下载的Youtube的视频链接 
    # youtube-dl -f 18 https://www.youtube.com/                             \\ -f 编号为18清晰度的视频  不加选项为下载源码


注: 
    官网地址 https://github.com/ytdl-org/youtube-dl/releases
    需要 python 2.6以上环境  # python -V


通用选项:
    -h, --help                       打印帮助文档
    --version                        打印版本信息
    -U, --update                     更新到最新版(需要权限)
    -i, --ignore-errors              遇到下载错误时跳过
    --abort-on-error                 遇到下载错误时终止
    --dump-user-agent                显示当前使用的浏览器(User-agent)
    --list-extractors                列出所有的提取器(支持的网站)
    --extractor-descriptions         同上
    --force-generic-extractor        强制使用通用提取器下载
    --default-search PREFIX          使用此前缀补充不完整的URLs,例如:"ytsearch2 yt-dl" 从youtube搜索并下载两个关于yt-dl视频. 
                                     使用"auto"youtube-dl就会猜一个,一般效果等价于"ytsearch"("auto_warning"猜测时加入警告).
                                     我已知支持的PREFIX:ytsearch (youtube), ytsearchdate (youtube), 
                                     yvsearch (yahoo videos), gvsearch (google videos) 
    --ignore-config                  不读取配置文件,当时用了全局配置文件/etc/youtube-dl.conf:
                                     不再读取 ~/.config/youtube-dl/config (%APPDATA%/youtube-dl/config.txt on Windows)
    --config-location PATH           使用指定路径下的配置文件
    --flat-playlist                  列出列表视频但不下载
    --mark-watched                   标记看过此视频 (YouTube only)
    --no-mark-watched                不标记看过此视频 (YouTube only)
    --no-color                       打印到屏幕上的代码不带色

  网络选项:
    --proxy URL                      使用HTTP/HTTPS/SOCKS协议的代理.如:socks5://127.0.0.1:1080/.
    --socket-timeout SECONDS         放弃连接前等待时间
    --source-address IP              绑定的客户端IP地址
    -4, --force-ipv4                 所有连接通过IPv4
    -6, --force-ipv6                 所有连接通过IPv6

  地理限制:
    --geo-verification-proxy URL     使用此代理地址测试一些有地理限制的地址
    --geo-bypass                     绕过地理限制通过伪装X-Forwarded-For HTTP头部的客户端ip (实验)
    --no-geo-bypass                  不 绕过地理限制通过伪装X-Forwarded-For HTTP头部的客户端ip (实验)
    --geo-bypass-country CODE        强制绕过地理限制通过提供准确的ISO 3166-2标准的国别代码(实验)

  视频选择:
    --playlist-start NUMBER          指定列表中开始下载的视频(默认为1)
    --playlist-end NUMBER            指定列表中结束的视频(默认为last)
    --playlist-items ITEM_SPEC       列表中要下载的视频编号.如:"--playlist-items 1,2,5,8"或"--playlist-items 1-3,7,10-13"
    --match-title REGEX              下载标题匹配的视频(正则表达式或区分大小写的字符串)
    --reject-title REGEX             跳过下载标题匹配的视频(正则表达式或区分大小写的字符串)
    --max-downloads NUMBER           下载NUMBER个视频后停止
    --min-filesize SIZE              不下载小于SIZE的视频(e.g. 50k or 44.6m)
    --max-filesize SIZE              不下载大于SIZE的视频(e.g. 50k or 44.6m)
    --date DATE                      仅下载上传日期在指定日期的视频
    --datebefore DATE                仅下载上传日期在指定日期或之前的视频 (i.e. inclusive)
    --dateafter DATE                 仅下载上传日期在指定日期或之后的视频 (i.e. inclusive)
    --min-views COUNT                不下载观影数小于指定值的视频
    --max-views COUNT                不下载观影数大于指定值的视频
    --match-filter FILTER            通用视频过滤器. Specify any key (see help for -o for a list of available keys) 
                                     to match if the key is present, !key to check if the key is not present, key > 
                                     NUMBER (like "comment_count > 12", also works with >=, <, <=, !=, =) to compare 
                                     against a number,key = ‘LITERAL‘ (like "uploader = ‘Mike Smith‘", also works with !=)
                                     to match against a string literal and & to require multiple matches. Values which 
                                     are not known are excluded unless you put a question mark (?) after the operator. 
                                     For example, to only match videos that have been liked more than 100 times and 
                                     disliked less than 50 times (or the dislike functionality is not available at the
                                     given service), but who also have a description, use --match-filter 
                                     "like_count > 100 & dislike_count <? 50 & description" .
    --no-playlist                    当视频链接到一个视频和一个播放列表时,仅下载视频
    --yes-playlist                   当视频链接到一个视频和一个播放列表时,下载视频和播放列表
    --age-limit YEARS                下载合适上传年限的视频
    --download-archive FILE          仅下载档案文件中未列出的影片,已下载的记录ID
    --include-ads                    同时下载广告(实验)

  下载选项:
    -r, --limit-rate RATE            最大bps (e.g. 50K or 4.2M)
    -R, --retries RETRIES            重试次数 (默认10), or "infinite".
    --fragment-retries RETRIES       一个分段的最大重试次数(default is 10), or "infinite" (DASH, hlsnative and ISM)
    --skip-unavailable-fragments     跳过不可用分段(DASH, hlsnative and ISM)
    --abort-on-unavailable-fragment  放弃某个分段当不可获取时
    --keep-fragments                 下载完成后,将下载的片段保存在磁盘上; 片段默认被删除
    --buffer-size SIZE               设置缓冲区大小buffer (e.g. 1024 or 16K) (default is 1024)
    --no-resize-buffer               不自动调整缓冲区大小.默认情况下自动调整
    --playlist-reverse               以相反的顺序下载播放列表视频
    --playlist-random                以随机的顺序下载播放列表视频
    --xattr-set-filesize             Set file xattribute ytdl.filesize with expected file size (experimental)
    --hls-prefer-native              使用本机默认HLS下载器而不是ffmpeg
    --hls-prefer-ffmpeg              使用ffmpeg而不是本机HLS下载器
    --hls-use-mpegts                 使用TS流容器来存放HLS视频,一些高级播放器允许在下载的同时播放视频
    --external-downloader COMMAND    使用指定的第三方下载工具,当前支持:aria2c,avconv,axel,curl,ffmpeg,httpie,wget
    --external-downloader-args ARGS  给第三方下载工具指定参数,如:--external-downloader aria2c --external-downloader-args -j8

  文件系统选项:
    -a, --batch-file FILE            文件中包含需要下载的URL
    --id                             仅使用文件名中的视频ID
    -o, --output TEMPLATE            Output filename template, see the "OUTPUT TEMPLATE" for all the info
    --autonumber-start NUMBER        指定%(autonumber)s的起始值(默认为1)
    --restrict-filenames             将文件名限制为ASCII字符,并避免文件名中的“&”和空格
    -w, --no-overwrites              不要覆盖文件
    -c, --continue                   强制恢复部分下载的文件。 默认情况下,youtube-dl仅在可能时将恢复下载。
    --no-continue                    不要恢复部分下载的文件(从头开始重新启动)
    --no-part                        不使用.part文件 - 直接写入输出文件
    --no-mtime                       不使用Last-modified header来设置文件最后修改时间
    --write-description              将视频描述写入.description文件
    --write-info-json                将视频元数据写入.info.json文件
    --write-annotations              将视频注释写入.annotations.xml文件
    --load-info-json FILE            包含视频信息的JSON文件(使用“--write-info-json”选项创建)
    --cookies FILE                   文件从中读取Cookie(经测试,export cookies插件可以使用,但firebug导出的cookies导致错误)
    --cache-dir DIR                  文件存储位置。youtube-dl需要永久保存一些下载的信息。默认为
                                     $XDG_CACHE_HOME/youtube-dl或/.cache/youtube-dl。目前,只有YouTube播放器文件
                                     (对于具有模糊签名的视频)进行缓存,但可能会发生变化。
    --no-cache-dir                   不用缓存
    --rm-cache-dir                   删除所有缓存文件

  缩略图:
    --write-thumbnail                把缩略图写入硬盘
    --write-all-thumbnails           将所有缩略图写入磁盘
    --list-thumbnails                列出所有可用的缩略图格式

  详细/模拟选项:
    -q, --quiet                      激活退出模式
    --no-warnings                    忽略警告
    -s, --simulate                   不下载不存储任何文件到硬盘,模拟下载模式
    --skip-download                  不下载视频
    -g, --get-url                    模拟下载获取视频直连
    -e, --get-title                  模拟下载获取标题
    --get-id                         模拟下载获取id
    --get-thumbnail                  模拟下载获取缩略图URL
    --get-description                模拟下载获取视频描述
    --get-duration                   模拟下载获取视频长度
    --get-filename                   模拟下载获取输出视频文件名
    --get-format                     模拟下载获取输出视频格式
    -j, --dump-json                  模拟下载获取JSON information.
    -J, --dump-single-json           模拟下载获取每条命令行参数的JSON information.如果是个播放列表,就获取整个播放列表的JSON
    --print-json                     下载的同时获取视频信息的JSON
    --newline                        进度条在新行输出
    --no-progress                    不打印进度条
    --console-title                  在控制台标题栏显示进度
    -v, --verbose                    打印各种调试信息
    --dump-pages                     打印下载下来的使用base64编码的页面来调试问题(非常冗长)
    --write-pages                    将下载的中间页以文件的形式写入当前目录中以调试问题
    --print-traffic                  显示发送和读取HTTP流量
    -C, --call-home                  联系youtube-dl服务器进行调试
    --no-call-home                   不联系youtube-dl服务器进行调试

  解决方法:
    --encoding ENCODING              强制指定编码(实验)
    --no-check-certificate           禁止HTTPS证书验证
    --prefer-insecure                使用未加密的连接来检索有关视频的信息(目前仅支持YouTube)
    --user-agent UA                  指定user agent
    --referer URL                    指定自定义的referer,仅限视频来源于同一网站
    --add-header FIELD:VALUE         指定一个自定义值的HTTP头文件,使用分号分割,可以多次使用此选项
    --bidi-workaround                围绕缺少双向文本支持的终端工作。需要在PATH中有bidiv或fribidi可执行文件
    --sleep-interval SECONDS         在每次下载之前休眠的秒数,或者每次下载之前的随机睡眠的范围的下限(最小可能的睡眠秒数)
                                     与-max-sleep-interval一起使用。
    --max-sleep-interval SECONDS     每次下载前随机睡眠范围的上限(最大可能睡眠秒数)。只能与--min-sleep-interval一起使用。

  视频格式选项:
    -f, --format FORMAT              视频格式代码,查看"FORMAT SELECTION"获取所有信息
    --all-formats                    获取所有视频格式
    --prefer-free-formats            开源的视频格式优先,除非有特定的请求
    -F, --list-formats               列出请求视频的所有可用格式
    --youtube-skip-dash-manifest     不要下载关于YouTube视频的DASH清单和相关数据
    --merge-output-format FORMAT     如果需要合并(例如bestvideo + bestaudio),则输出到给定的容器格式。
                                     mkv,mp4,ogg,webm,flv之一。如果不需要合并,则忽略

  字幕选项:
    --write-sub                      下载字幕文件
    --write-auto-sub                 下载自动生成的字幕文件 (YouTube only)
    --all-subs                       下载所有可用的字幕
    --list-subs                      列出所有字幕
    --sub-format FORMAT              字幕格式,接受格式偏好,如:"srt" or "ass/srt/best"
    --sub-lang LANGS                 要下载的字幕的语言(可选)用逗号分隔,请使用--list-subs表示可用的语言标签

  验证选项:
    -u, --username USERNAME          使用ID登录
    -p, --password PASSWORD          账户密码,如果此选项未使用,youtube-dl将交互式地询问。
    -2, --twofactor TWOFACTOR        双因素认证码
    -n, --netrc                      使用.netrc认证数据
    --video-password PASSWORD        视频密码(vimeo, smotri, youku)

  Adobe Pass Options:
    --ap-mso MSO                     Adobe Pass多系统运营商(电视提供商)标识符,使用--ap-list-mso列出可用的MSO
    --ap-username USERNAME           MSO账号登录
    --ap-password PASSWORD           账户密码,如果此选项未使用,youtube-dl将交互式地询问。
    --ap-list-mso                    列出所有支持的MSO

  后处理选项:
    -x, --extract-audio              将视频文件转换为纯音频文件(需要ffmpeg或avconv和ffprobe或avprobe)
    --audio-format FORMAT            指定音频格式: "best", "aac", "flac", "mp3", "m4a", "opus", "vorbis", or "wav";
                                    "best" by default;-x存在时无效
    --audio-quality QUALITY          指定ffmpeg/avconv音频质量,为VBR插入一个0(best)-9(worse)的值(默认5),或者指定比特率
    --recode-video FORMAT            必要时将视频转码为其他格式(当前支持: mp4|flv|ogg|webm|mkv|avi)
    --postprocessor-args ARGS        给后处理器提供这些参数
    -k, --keep-video                 视频文件在后处理后保存在磁盘上; 该视频默认被删除
    --no-post-overwrites             不要覆盖后处理文件; 默认情况下,后处理文件将被覆盖
    --embed-subs                     在视频中嵌入字幕(仅适用于mp4,webm和mkv视频)
    --embed-thumbnail                将缩略图嵌入音频作为封面艺术
    --add-metadata                   将元数据写入视频文件
    --metadata-from-title FORMAT     从视频标题中解析附加元数据,如歌曲标题/艺术家。格式语法和--output相似.也可以使用带有命名捕
                                     获组的正则表达式。解析的参数替换现有值。Example: --metadata-from-title "%(artist)s - 
                                     %(title)s" matches a title like "Coldplay - Paradise". Example (regex): 
                                     --metadata-from-title "(?P<artist>.+?) - (?P<title>.+)" 
    --xattrs                         将元数据写入视频文件的xattrs(使用dublin core 和 xdg标准)
    --fixup POLICY                   自动更正文件的已知故障。never(不做警告), warn(只发出警告), detect_or_warn 
                                     (默认;如果可以的话修复文件,否则警告)
    --prefer-avconv                  后处理时相较ffmpeg偏向于avconv
    --prefer-ffmpeg                  后处理优先使用ffmpeg
    --ffmpeg-location PATH           ffmpeg/avconv程序位置;PATH为二进制所在文件夹或者目录.
    --exec CMD                       下载后对文件执行命令,类似于find -exec语法.例:--exec‘adb push {} /sdcard/Music/ && rm {}‘
    --convert-subs FORMAT            转换字幕格式(当前支持: srt|ass|vtt)








socks5 http v2ray 各种代理 服务器





socks5 http https v2ray trojan 各种代理 服务器



❶. socks5 代理服务器 安装

    # yum install gcc automake autoconf libtool make
    # yum install openssl-devel pam-devel openldap-devel cyrus-sasl-devel
    # wget https://nchc.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz
    # tar zxvf ss5-3.6.4-3.tar.gz -C /usr/local/
    # cd /usr/local/ss5-3.8.9
    # ./configure
    # make
    # make install
    # chmod +x /etc/init.d/ss5
    # chkconfig --add ss5
    # chkconfig --level 345 ss5 on


    不开启验证

        # vim /etc/opt/ss5/ss5.conf
            auth    0.0.0.0/0   -  -                   \\ 前面去掉注释
            permit -  0.0.0.0/0 - 0.0.0.0/0 - - - - -
        # vim /etc/sysconfig/ss5
            SS5_OPTS=" -u root -b 0.0.0.0:8010"           \\ 监听在8081端口
        # systemctl restart ss5                            \\ 8081 端口被 监听


    开启用户名密码验证机制

        # vim /etc/opt/ss5/ss5.conf
            auth 0.0.0.0/0 - u                       \\ 前面去掉注释
            permit u 0.0.0.0/0 - 0.0.0.0/0 - - - - -  \\ 前面去掉注释
        # vim /etc/opt/ss5/ss5.passwd                  \\ 设置用户名 密码
            user1 123456
            user2 123456
        # vim /etc/sysconfig/ss5
            SS5_OPTS=" -u root -b 0.0.0.0:8010"           \\ 监听在8081端口
        # systemctl restart ss5                            \\ 8081 端口被 监听


    注:
        ❶. 浏览器代理 不能开启认证 个别软件支持开启认证 如 纸飞机
        ❷. 火狐浏览器 可以通过设置代理上网      不需要打开windows系统的代理设置
        ❸. 谷歌浏览器可通过插件 Proxy SwitchyOmega 设置代理上网     不需要打开windows系统的代理设置
        ❹. 360急速浏览器 不好使
        ❺. SOCKS5 是一个代理协议 通过将前端发来的请求转发给真正的目标服务器 模拟了一个前端的行为 在这里 前端和SOCKS5之间也是通过
        ❻. TCP/IP协议进行通讯,前端将原本要发送给真正服务器的请求发送给SOCKS5服务器,然后SOCKS5服务器将请求转发给真正的服务器。
        ❼. https://sourceforge.net/projects/ss5/files/               \\ 官网 下载地址


❷. Nginx 配置 http / https 代理

    # yum install openssl openssl-devel gcc gcc-c++ pcre pcre-devel
    # groupadd www
    # useradd -g www www -s /sbin/nologin
    # wget http://nginx.org/download/nginx-1.21.0.tar.gz
    # tar zxvf nginx-1.21.0.tar.gz
    # git clone https://github.com/chobits/ngx_http_proxy_connect_module.git            \\ 需单独下载 代理模块
    # cd nginx-1.21.0                                                                    \\ 安装完成 此目录可以删除
    # patch -p1 < ../ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_1018.patch \\
    # ./configure --prefix=/usr/local/nginx --pid-path=/run/nginx.pid --with-http_ssl_module --with-http_realip_module --with-http_v2_module --with-stream --with-http_gzip_static_module --with-http_flv_module --with-http_mp4_module --with-file-aio --with-http_stub_status_module --add-module=../ngx_http_proxy_connect_module
    # make && make install

    # vim /usr/local/nginx/conf/sites/proxy.conf
        server {
            listen 8000;
            # dns resolver used by forward proxying
            resolver 8.8.8.8;

            # forward proxy for CONNECT request
            proxy_connect;
            proxy_connect_allow            443 563;
            proxy_connect_connect_timeout  10s;
            proxy_connect_read_timeout     10s;
            proxy_connect_send_timeout     10s;

            # forward proxy for non-CONNECT request
            location / {
                proxy_pass http://$host;
                proxy_set_header Host $host;
            }
        }

    # /usr/local/nginx/sbin/nginx        \\ 启动
    # ss -tnl                             \\ 8000端口被监听  如需 systemctl 管理 详见 nginx 编译安装
    # curl ip.sb --proxy 47.91.219.64:8000             \\ 随便一台机器 测试代理
    # curl -x 47.91.219.64:8000 httpbin.org/get         \\ 随便一台机器 测试代理

    linux 配置代理

        # vim /etc/profile.d/proxy.sh              \\ 如果取消 删除此文件即可
            export http_proxy='47.241.247.220:8000'   # http
            export https_proxy='47.241.247.220:8000'  # https
        # source /etc/profile
        # curl ip.sb                                  \\ 可以看到外网ip 已经改变


    windows 可在 火狐浏览器中配置 http https 代理 其他浏览器自行尝试


    注:
        nginx正向代理模块开源地址 https://github.com/chobits/ngx_http_proxy_connect_module



❸. Tinyproxy  搭建  http / https 代理

    # yum install tinyproxy
    # vim /etc/tinyproxy/tinyproxy.conf
        Port 8888                  \\ 监听端口 默认为 8888
        #Allow 127.0.0.1            \\ 注释掉 是允许所有ip 默认只允许本地  如有可以写多个Allow

    # systemctl restart tinyproxy
    # ss -tnl                                  \\ 8888端口被监听
    # curl ip.sb --proxy 47.91.219.64:8888      \\ 随便一台机器 测试代理
    # curl -x 47.91.219.64:8888 httpbin.org/get  \\ 测试 使用代理 参见上面代理配置即可


❹. v2ray 服务

    # bash <(curl -s -L https://git.io/v2ray-setup.sh)           \\ 一键安装脚本
        地址 (Address) = 172.21.34.204
        端口 (Port) = 8888
        用户ID (User ID / UUID) = e9b59733-cb76-49e0-8921-363362299fac
        额外ID (Alter Id) = 0
        传输协议 (Network) = tcp
        伪装类型 (header type) = none

    # cat /etc/v2ray/config.json                 \\ 配置文件 里面有 端口 id等信息
        "port": 8888,     
        id": "e9b59733-cb76-49e0-8921-363362299fac",

    windows 连接
        windows 客户端 v2rayN 下载地址 
            https://cloud.degoo.com/share/f-Vljc2ZjhmcPyHbi5Pw0A
            https://github.com/xyz690/cloudimg/blob/main/data/v2rayN-3.29.zip

        服务器 --> 添加VMess服务器         \\ 任务栏图标 右键可以选择更换服务器
            地址 172.21.34.204
            端口 8888
            用户ID e9b59733-cb76-49e0-8921-363362299fac

        注: 在服务上右键速度测试 可以判断服务是否成功

    使用 Netch 基于 v2ray 连接                     \\ 开源游戏加速工具 亦可使用其他连接方式
        服务器 --> 添加 [VMess] 服务器               \\ 其他根据服务器填写 一般默认即可
            备注 172.21.34.204
            地址 172.21.34.204 : 8888
            用户ID e9b59733-cb76-49e0-8921-363362299fac
        模式 --> 创建进程模式
            备注 英雄联盟加速
            扫描 --> 选择游戏进程目录 --> 选择进程后添加
            添加

    linux 连接
        https://github.com/jiangxufeng/v2rayL/releases      \\ 未测试

    IOS v2ray客户端
        shadow(小火箭)rocket,quantumult(圈),kitsunebi     \\ 可以使用这些软件连接 未测试

    V2ray安卓客户端
        https://www.magento2u.com/wp-content/uploads/bifrostV-v0.6.8.zip   \\ 未测试

    V2ray Mac客户端
        https://www.magento2u.com/wp-content/uploads/v2rayU-v2.1.0.zip        \\ 未测试

    其他相关命令

        # v2ray info                 \\ 查看 V2Ray 配置信息
        # v2ray config                \\ 修改 V2Ray 配置
        # v2ray link                   \\ 生成 V2Ray 配置文件链接
        # v2ray infolink                \\ 生成 V2Ray 配置信息链接
        # v2ray qr                       \\ 生成 V2Ray 配置二维码链接
        # v2ray ss                        \\ 修改 Shadowsocks 配置
        # v2ray ssinfo                     \\ 查看 Shadowsocks 配置信息
        # v2ray ssqr                        \\ 生成 Shadowsocks 配置二维码链接
        # v2ray status                \\ 查看 V2Ray 运行状态
        # v2ray start                  \\ 启动 V2Ray
        # v2ray stop                    \\ 停止 V2Ray
        # v2ray restart                  \\ 重启 V2Ray
        # v2ray log                       \\ 查看 V2Ray 运行日志
        # v2ray update                     \\ 更新 V2Ray
        # v2ray update.sh                   \\ 更新 V2Ray 管理脚本
        # v2ray uninstall                    \\ 卸载 V2Ray


❺. trojan-go 服务

    # wget --no-check-certificate https://github.com/p4gefau1t/trojan-go/releases/download/v0.4.1/trojan-go-linux-amd64.zip
    # unzip trojan-go-linux-amd64.zip -d /usr/local/trojan  \\ 会创建trojan夹 此为老版本 新版本地址看注释 单systemctl不好使

    # cat >/usr/local/trojan/config.json <<EOF
    {
      "run_type": "server",
      "local_addr": "0.0.0.0",
      "local_port": 221,
      "remote_addr": "127.0.0.1",
      "remote_port": 80,
      "log_level": 1,
      "log_file": "/usr/local/trojan/trojan.log",
      "password": [
           "123456"
      ],
      "buffer_size": 32,
      "dns": [],
      "ssl": {
        "verify": true,
        "verify_hostname": true,
        "cert": "/etc/nginx/ssl/m.ssyy99.com.cer",
        "key": "/etc/nginx/ssl/m.ssyy99.com.key",
        "key_password": "",
        "cipher": "",
        "cipher_tls13": "",
        "curves": "",
        "prefer_server_cipher": false,
        "sni": "m.ssyy99.com",
        "alpn": [
          "http/1.1"
        ],
        "session_ticket": true,
        "reuse_session": true,
        "plain_http_response": "",
        "fallback_port": 221,
        "fingerprint": "firefox",
        "serve_plain_text": false
      },
      "tcp": {
        "no_delay": true,
        "keep_alive": true,
        "reuse_port": false,
        "prefer_ipv4": false,
        "fast_open": false,
        "fast_open_qlen": 20
      },
      "mux": {
        "enabled": false,
        "concurrency": 8,
        "idle_timeout": 60
      },
      "router": {
        "enabled": false,
        "bypass": [],
        "proxy": [],
        "block": [],
        "default_policy": "proxy",
        "domain_strategy": "as_is",
        "geoip": "./geoip.dat",
        "geosite": "./geoip.dat"
      },
      "websocket": {
        "enabled": false,
        "path": "",
        "hostname": "127.0.0.1",
        "obfuscation_password": "",
        "double_tls": false,
        "ssl": {
          "verify": true,
          "verify_hostname": true,
          "cert": "/etc/nginx/ssl/m.ssyy99.com.cer",
          "key": "/etc/nginx/ssl/m.ssyy99.com.key",
          "key_password": "",
          "prefer_server_cipher": false,
          "sni": "",
          "session_ticket": true,
          "reuse_session": true,
          "plain_http_response": ""
        }
      },
      "forward_proxy": {
        "enabled": false,
        "proxy_addr": "",
        "proxy_port": 0,
        "username": "",
        "password": ""
      },
      "mysql": {
        "enabled": false,
        "server_addr": "localhost",
        "server_port": 3306,
        "database": "",
        "username": "",
        "password": "",
        "check_rate": 60
      },
      "redis": {
        "enabled": false,
        "server_addr": "localhost",
        "server_port": 6379,
        "password": ""
      },
      "api": {
        "enabled": false,
        "api_addr": "",
        "api_port": 0
      }
    }
    EOF

    # cd /usr/local/trojan
    # nohup ./trojan-go config.json &                 \\ 启动
    # ss -tnl                                          \\ 221 端口被监听

    # cat >/etc/systemd/system/trojan.service<< EOF
    [Unit]
    Description=trojan
    Documentation=https://github.com/p4gefau1t/trojan-go
    After=network.target

    [Service]
    Type=simple
    StandardError=journal
    PIDFile=/usr/src/trojan/trojan/trojan.pid
    ExecStart=/usr/local/trojan/trojan-go
    ExecReload=
    ExecStop=/usr/local/trojan/trojan-go
    LimitNOFILE=51200
    Restart=on-failure
    RestartSec=1s

    [Install]
    WantedBy=multi-user.target
    EOF

    # systemctl daemon-reload
    # systemctl enable trojan
    # systemctl restart trojan
    # ss -tnl



    注:
        https://github.com/trojan-gfw/trojan/             \\ 官网 git 地址
        https://trojan-gfw.github.io/trojan/               \\ 说明文件
        https://github.com/p4gefau1t/trojan-go/releases     \\ 官网下载地址 trojan-go-linux-amd64.zip
        https://github.com/p4gefau1t/trojan-go/releases/download/v0.10.4/trojan-go-linux-amd64.zip  \\ 新版本

        配置文件 详解
            "local_port": 221,                         \\ trojan 监听的端口
            "remote_port": 80,                          \\ 网页端口
            "log_file": "/usr/local/trojan/trojan.log",  \\ 日志位置
            "password": [
               "123456"                                    \\ 密码 可设置多个密码 下面依次写
            "cert": "/etc/nginx/ssl/m.ssyy99.com.cer",      \\ 证书 cer, pem  都可以
            "sni": "m.ssyy99.com",                           \\ 域名
            "fallback_port": 221,                             \\ 同上面的 ip
            
        Windows 连接 可使用 v2rayN-3.29 连接

        苹果 连接 可使用 shadowroket 支持trojan 简单配置域名 端口221 连接密码即可

        安卓 连接 可使用 igniter 仅支持全局代理


    使用 nginx 配置伪装

        # mkdir -p /data/www/trojan
        # cd /data/www/trojan
        # wget https://github.com/V2RaySSR/Trojan/raw/master/web.zip        \\ 伪装站点

        # vim /etc/nginx/conf.d/trojan.conf
            server {
                listen 127.0.0.1:80; #放在Trojan后面即可做伪装也可以是真正的网站
                server_name m.ssyy99.com; #域名
                location / {
                    # 这里可以反向代理自己另外一个网站,比如 proxy_pass https://baidu.com;
                    root /data/www/trojan/; #默认的根目录
                    index index.html; #默认的html文件
                    }
                add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; #HSTS标头
            }

            server {
                listen 80;
                listen [::]:80;
                server_name m.ssyy99.com;
                return 301 https://m.ssyy99.com; #301 https重定向
            }

            server {
                listen 80 default_server;
                listen [::]:80 default_server;
                server_name _;
                return 444;
            }



注:
    各种代理  https://www.v2rayssr.com/
    各种vpn  https://ssr.tools/1492