使用AWS CLI通过API Key和API Secret体验免费12个月的EC2
需要准备申请到API Key和API Secret。电脑集成AWS CLI开发环境，Mac可以使用HomeBrew一键安装。brew install awscli了解AWS的区域IDAWS Region Name 包括 (但不限于): us-east-1 (北弗吉尼亚): 这是 AWS 的第一个 Region，通常被称为 "us-east-1"。 us-east-2 (俄亥俄) us-west-1 (北加州) us-west-2 (俄勒冈) ap-south-1 (孟买) ap-northeast-1 (东京) ap-northeast-2 (首尔) ap-southeast-1 (新加坡) ap-southeast-2 (悉尼) eu-central-1 (法兰克福) eu-west-1 (爱尔兰) eu-west-2 (伦敦) eu-west-3 (巴黎) eu-north-1 (斯德哥尔摩) sa-east-1 (圣保罗) ca-central-1 (加拿大中部)了解AWS不同镜像下的默认用户名根据实例AMI不同，默认用户名可能是： Amazon Linux: ec2-user Ubuntu: ubuntu CentOS: centos RHEL: ec2-user或root开始操作登录：root@iMac:~# aws configure AWS Access Key ID [None]: AK****************** #API Key AWS Secret Access Key [None]: Rk************************************** #API Secret Default region name [None]: ap-southeast-2 #我选的悉尼区 Default output format [None]: json #以JSON输出内容创建密钥对：root@iMac:~# aws ec2 create-key-pair --key-name MyKeyPair --query 'KeyMaterial' --output text > MyKeyPair.pem --key-name MyKeyPair: 指定密钥对的名称。名称必须在你的账户内唯一。 --query 'KeyMaterial' --output text: 提取私钥内容并以文本格式输出。 > MyKeyPair.pem: 将私钥保存到名为 MyKeyPair.pem 的文件中。 这是至关重要的步骤，因为 AWS 不会为你存储私钥。丢失私钥将无法访问使用该密钥对启动的实例。此时在命令行执行ls -a就可以查看到当前路径下的密钥文件MyKeyPair.pem查询当前区域可用的符合Free Tier的实例类型：root@iMac:~# aws ec2 describe-instance-types \ --filters "Name=free-tier-eligible,Values=true" \ --query "InstanceTypes[].InstanceType" [ "t2.micro" ]查询当前区域可用的镜像AMI：root@iMac:~# aws ec2 describe-images --filters "Name=name,Values=*Ubuntu*" --owners amazon --output table #这将列出名称包含 "Ubuntu" 的 Amazon AMI。 你可以使用通配符 * 来匹配部分名称。 || ImageId | ami-00fdfd2f612bf964f #我选第一个结果 创建当前区域的安全组：root@iMac:~# aws ec2 create-security-group --group-name FreeTier-Sydney --description "Free Tier Security Group"查看安全组ID:root@iMac:~# aws ec2 describe-security-groups "GroupId": "sg-0d5ab08be8cc8ee2e",创建实例：root@iMac:~# aws ec2 run-instances \ --image-id ami-00fdfd2f612bf964f \ # Ubuntu AMI (根据区域替换为最新AMI) --instance-type t2.micro \ # Free Tier符合条件的实例类型 --key-name MyKeyPair \ # 替换为你的密钥对名称 --security-group-ids sg-0d5ab08be8cc8ee2e \ # 替换为你的安全组ID --count 1 \ --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=FreeTier-Instance}]'获取实例ID：root@iMac:~# aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId' --output text i-00848d6f4b5b3183f获取公网IP（可能需要等待一会才能获取到公网IP）：root@iMac:~# aws ec2 describe-instances --instance-ids i-00848d6f4b5b3183f --query 'Reservations[].Instances[].PublicIpAddress' --output text 54.255.138.44允许公网访问22端口：root@iMac:~# aws ec2 authorize-security-group-ingress \ --group-id sg-0d5ab08be8cc8ee2e \ --protocol tcp \ --port 22 \ --cidr 0.0.0.0/0 # 生产环境建议限制为您的IPssh登录服务器：root@iMac:~# ssh -i MyKeyPair.pem ubuntu@54.255.138.44防止反薅严格验证实例类型：root@iMac:~# aws ec2 describe-instances \ --instance-ids i-00848d6f4b5b3183f \ --query 'Reservations[0].Instances[0].InstanceType' "m1.small" #擦，我慌了，不是"t2.micro"将实例类型改为"t2.micro"：# 先马上停止实例 root@iMac:~# aws ec2 stop-instances --instance-ids i-00848d6f4b5b3183f #修改类型为 t2.micro root@iMac:~# aws ec2 modify-instance-attribute \ --instance-id i-00848d6f4b5b3183f \ --instance-type "t2.micro" #再次验证实例类型 root@iMac:~# aws ec2 describe-instances \ --instance-ids i-00848d6f4b5b3183f \ --query 'Reservations[0].Instances[0].InstanceType' "t2.micro"可以愉快的玩耍了
资源准备联通良好的socks节点开始部署root@VM-ONLY-ipv6:~# export all_proxy=socks5h://username:password@[ipv6_address]:port root@VM-ONLY-ipv6:~# curl https://get.acme.sh | sh -s email=email@outlook.com #此处邮箱不能用@example.com root@VM-ONLY-ipv6:~# acme.sh --issue -d domain --server https://acme-v02.api.letsencrypt.org/directory --standalone --listen-v6 root@VM-ONLY-ipv6:~# acme.sh --install-cert -d domain --key-file /path/domain.server.key --fullchain-file /path/domain.ca.crt完毕
启用[label color="green"]zsh[/label]修改当前用户使用的 shell 为zshroot@Linux:~# echo $SHELL ##查看当前用户的shell /bin/bashroot@Linux:~# cat /etc/shells ##查看当前用户的shell，由下可知需要另行安装`zsh` # /etc/shells: valid login shells /bin/sh /bin/bash /usr/bin/bash /bin/rbash /usr/bin/rbash /bin/dash /usr/bin/dash安装zsh，同时安装oh-my-zsh扩展centos： yum install zsh -ydebian或ubuntu：apt install zsh安装oh-my-zsh[tabs] [tab-pane label="Install oh-my-zsh via curl"]sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"[/tab-pane] [tab-pane label="Install oh-my-zsh via wget"]sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"[/tab-pane][/tabs]修改当前用户shell为zshroot@Linux:~# cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/bash /usr/bin/bash /bin/rbash /usr/bin/rbash /bin/dash /usr/bin/dash /bin/zsh ##zsh已经正确安装 root@Linux:~# chsh -s /bin/zsh ##修改当前用户shell为zsh Changing shell for root. Shell not changed.安装插件——[label color="green"]zsh-autosuggestions[/label] 和[label color="green"]zsh-syntax-highlighting[/label]下载命令补全建议插件zsh-autosuggestionsgit clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions下载语法高亮插件zsh-syntax-highlightinggit clone https://github.com/zsh-users/zsh-syntax-highlighting ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting修改配置文件[label color="green"].zshrc[/label]vim ~/.zshrc修改如下选项主题设置：ZSH_THEME="re5et"启用插件plugins=( git ##默认启用 z ##实现直接跳转到指定目录下，支持自动补全。语法：z 文件夹名称 zsh-autosuggestions ##命令补全建议插件 zsh-syntax-highlighting ##语法高亮 extract ##语法：x 压缩文件。解压文件而不需要知道它是何种压缩格式 )配置生效，执行source ~/.zshrc参考文章：https://www.jianshu.com/p/0bba0426e065https://blog.csdn.net/liaowenxiong/article/details/121066858https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
[hide-toggle name="写在前面"] [label color="purple"]HomeBrew的阿里源太慢了，中科大源快了不少[/label] [/hide-toggle]查看并替换源查看当前源：# 查看brew.git当前源 cd "$(brew --repo)" && git remote -v # 查看homebrew-core.git当前源 cd "$(brew --repo homebrew/core)" && git remote -v换为中科大源：# 替换brew.git: cd "$(brew --repo)" && git remote set-url origin https://mirrors.ustc.edu.cn/brew.git # 替换homebrew-core.git: cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" && git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git # 替换homebrew-cask.git: cd "$(brew --repo)/Library/Taps/homebrew/homebrew-cask" && git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git编辑 .zshrc ：#在.zshrc文件后加入 export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles export HOMEBREW_BREW_GIT_REMOTE=https://mirrors.ustc.edu.cn/brew.git export HOMEBREW_CORE_GIT_REMOTE=https://mirrors.ustc.edu.cn/homebrew-core.git 参考文章：https://blog.csdn.net/LGL979643718/article/details/127975358
资源准备台式机，系统Windows10 21H1专业工作站版,板载网卡8111G，PCIE网卡RTL8168开源固件OpenWrt，本教程固件在supes.top（自定义固件不免费）生成安装固件格式转换软件，官网下载bios开启虚拟化，Windows支持开启Hyper-V（Windows10 64位专业版、企业版、教育版支持，家庭版不支持Hyper-V）申请动态公网ip网络拓扑图及预实现的目标2.1 板载网卡为WAN口，负责PPPOE拨号，PCIE网卡为LAN口固件下载及格式转换下载openwrt-03.26.2023-x86-64-generic-squashfs-combined-efi.img.gz并解压，生成openwrt-03.26.2023-x86-64-generic-squashfs-combined-efi.img（下面以”img固件“指代）,efi说明这是支持UEFI启动的固件打开StarWind V2V Converter，依次操作Local file-->File name选中img固件-->Local file-->VHD\VHDX-->VHDX growable image-->File name选择转换后的固件存放路径-->Convert，在C盘根目录下分别新建文件OS、OpenWrt文件夹,转换好的固件放入OS文件夹开启Hyper-V点此开启Hyper-V安装[label color="green"]OpenWrt[/label]5.1 创建 [label color="green"]虚拟交换机[/label]打开Hyper-V 管理器右侧点击虚拟交换机管理，依次创建LAN和WAN新建虚拟机： 在Hyper-V管理器主界面，右侧依次点击新建-->虚拟机-->名称OpenWrt，勾选将虚拟机存储在其他位置，浏览并选择已经在C盘根目录建好的OpenWrt文件夹-->虚拟机选择第二代(2)-->启动内存1024MB，不勾选为此虚拟机使用动态内存-->连接选择LAN-->勾选使用现有虚拟硬盘，浏览并选择已经在C盘根目录下OS文件夹放好的img固件-->完成。切记不要马上启动虚拟机，还需要进行一些设置。OpenWrt虚拟机设置：在Hyper-V管理器主界面，选中OpenWrt,点击设置添加硬件：添加网络适配器，虚拟交换机选择WAN启用MAC地址欺骗：分别展开网络适配器LAN，网络适配器WAN，勾选启动MAC地址欺骗安全：取消勾选启用安全启动自启动操作：勾选始终自动启动此虚拟机，这样可以开机就运行点击确定，保存更改启动OpenWrt虚拟机：在Hyper-V管理器主界面，选中OpenWrt,点击连接、启动会出现如下界面修改登录密码：[root@OpenWrt:12:12 /] # passwd Changing password for root New password: #输入能记得住的强密码，最好是具备大小写、特殊符号、数字的8位以上组合密码 Retype password: #重复输入密码 passwd: password for root changed by root #密登录码修改成功登录OpenWrt后台：浏览器地址栏输入10.0.0.1,点击网络、接口，保留LAN、WAN，其它接口全部删掉，编辑WAN，协议选PPPOE，PAP/CHAP 用户名为宽带账号，PAP/CHAP为宽带密码，填入并保存，接口页面点击保存并应用，等待拨号成功防火墙设置：点击网络、防火墙，在常规设置页面，进行如下设置宿主机打开任意网站进行验证能否上网，验证连接到AP（有线中继）的设备能否上网[label color="green"]可能遇到的问题[/label]6.1 10.0.0.1的后台进不去解决方法：在LAN口连接一台设备，关闭OpenWrt虚拟机并重新启动6.2 PPPOE拨号经常重连，具体表现为ip地址经常变更，有可能十几分钟就变一次解决方法：解决OpenWrt/Lede pppoe拨号频繁掉线的问题6.3 运营商每天踢路由器下线，wan口能重新获取ipv4地址，但是动态端口wan_6没了，新版本固件此情况可以正常上网，老版本不一定正常情况下应是这样解决方法：防火墙-通信规则添加规则待完善其他有待继续发现参考文章：https://ltmltm.cn/4755.htmlhttps://zhuanlan.zhihu.com/p/149216481https://www.right.com.cn/forum/https://iknow.lenovo.com.cn/detail/kd_10198.htmlhttps://zhuanlan.zhihu.com/p/491150806https://www.v2ex.com/t/837232
查看当前Linux的 [label color="green"]服务器编码[/label]终端执行： echo $LANG输出： en_US.UTF-8查看当前系统是否有 [label color="green"]中文语言包[/label]终端执行： locale -a看是否有 zh_CN.utf8安装中文语言包：终端执行 apt install language-pack-zh-hans设置系统支持中文：终端执行 locale-gen zh_CN.UTF-8查找locale [label color="green"]配置文件[/label]终端执行： find /etc/ -name locale 输出： /etc/default/locale修改locale [label color="green"]配置文件[/label]终端执行： vim /etc/default/locale# File generated by update-locale LANG="en_US.UTF-8" #改为"zh_CN.UTF-8"重启： reboot[label color="blue"]2023.4.10更新[/label][label color="green"]Debian[/label] 下修复中文乱码安装aptitudesudo apt-get insall aptitude安装语言包sudo dpkg-reconfigure locales按空格键选择：zh_CN GB2312、zh_CN.GBK GBK、zh_CN.UTF-8 UTF-8重启： reboot参考文章：https://blog.csdn.net/weixin_42666823/article/details/112850542http://120.27.232.225/2021/06/13/ubuntu修改终端下的语言（中文或英文）/https://blog.csdn.net/forever_008/article/details/103720389
资源准备香港vps一台，本次演示为Azure教育订阅Ubuntu或者Debian系统，本次演示为ubuntu20.04安装 [label color="green"]Redis[/label]终端执行： apt-get install redis验证安装： redis-cli ，输出如下表示成功修改Redis的配置文件终端执行： whereis redis ，输出如下终端执行： vi /etc/redis/redis.conf ，键盘敲击 I 键进入编辑模式设置密码键盘敲击 Esc 键，接着连续敲击 :wq 保存修改并退出终端执行： service redis reload部署 [label color="green"] BiliRoaming-Rust-Server[/label]截止发文时最新版本为 0.3.2，项目地址：https://github.com/pchpub/BiliRoaming-Rust-Server下载服务端： wget https://github.com/pchpub/BiliRoaming-Rust-Server/releases/download/v0.3.2/biliroaming_rust_server赋予执行权限： chmod +x biliroaming_rust_server下载配置文件： wget https://github.com/pchpub/BiliRoaming-Rust-Server/releases/download/v0.3.2/config.json新建文件夹： mkdir -p web修改 [label color="green"]config.json[/label] 配置文件终端执行： vi config.json修改本地与 redis 的连接修改 114514 为你的B站 uid ，第二个 false 修改为 true ，键盘敲击 Esc 键，接着连续敲击 :wq 保存修改并退出启动服务终端执行nohup ./biliroaming_rust_server >& BiliRoaming-Rust-Server.log &部署 [label color="green"]Nginx Proxy Manager[/label] 实现反向代理安装参考咕咕的博客反代设置验证安装：浏览器访问： https://www.example.com ，输出如下表示反代成功参考文章：https://myhosts.site/archives/18/
docker-compose.yml 配置：version: "3" services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: # These ports are in format <host-port>:<container-port> - '80:80' # Public HTTP Port - '443:443' # Public HTTPS Port - '81:81' # Admin Web Port # Add any other Stream port you want to expose # - '21:21' # FTP environment: DB_MYSQL_HOST: "db" DB_MYSQL_PORT: 3306 DB_MYSQL_USER: "npm" DB_MYSQL_PASSWORD: "npm" DB_MYSQL_NAME: "npm" # Uncomment this if IPv6 is not enabled on your host # DISABLE_IPV6: 'true' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt depends_on: - db db: image: 'jc21/mariadb-aria:latest' restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: 'npm' MYSQL_DATABASE: 'npm' MYSQL_USER: 'npm' MYSQL_PASSWORD: 'npm' volumes: - ./data/mysql:/var/lib/mysql 默认登录账户Email: admin@example.com Password: changeme参考文章：https://blog.laoda.de/archives/nginxproxymanagerhttps://nginxproxymanager.com/
资源准备安装Python3环境下载字典： git clone https://github.com/uselibrary/DomainScan.git下载域名扫描工具： git clone https://github.com/SKIYET/DomainScanTool.git扫描依次执行：cd /DomainScanToolpython3 domain_tool.py参考：https://github.com/SKIYET/DomainScanToolhttps://github.com/uselibrary/DomainScan
查看脚本路径： systemctl status v2ray● v2ray.service - V2Ray Service Loaded: loaded (/etc/systemd/system/v2ray.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2022-09-08 01:09:09 CST; 34s ago修改启动脚本： vi /etc/systemd/system/v2ray.service将 /usr/bin/v2ray/v2ray -config /etc/v2ray/config.json改成 /usr/bin/v2ray/v2ray run -config /etc/v2ray/config.json ，即加了 run终端执行： systemctl daemon-reload ，接着执行 systemctl restart v2ray