首页
关于
留言
Search
1
红米 AX3000 (AX6) 路由器解锁 SSH 教程
6,676 阅读
2
网盘挂载程序sharelist美化教程
4,216 阅读
3
小米路由器 AX3600 开启SSH教程,官方固件即可安装 ShellClash开启科学上网
2,168 阅读
4
Oracle 甲骨文 ARM VPS 自动抢购脚本
1,819 阅读
5
编译带PassWall和SSR-plus插件的Openwrt系统
1,393 阅读
前端
Vue
React
后端
Java
Python
PHP
数据库
运维
杂谈
小程序
影视资源
登录
Search
标签搜索
Java
Linux
Mysql
IDEA
Debian
Docker
Springboot
CentOS
Cloudflare
Maven
JavaScript
SQL
Wordpress
宝塔
Nginx
Windows
MacBook
JS
CSS
Openwrt
William
累计撰写
144
篇文章
累计收到
702
条评论
首页
栏目
前端
Vue
React
后端
Java
Python
PHP
数据库
运维
杂谈
小程序
影视资源
页面
关于
留言
搜索到
144
篇与
的结果
2022-03-05
MQ部分知识点 - 消息丢失、重复消费、消费顺序、堆积、事务、高可用
消息队列的应用场景?答案:1、异步处理 2、流量削峰填谷 3、应用解耦 4、消息通讯异步处理。将一个请求链路中的非核心流程,拆分出来,异步处理,减少主流程链路的处理逻辑,缩短RT,提升吞吐量。如:注册新用户发短信通知。削峰填谷。避免流量暴涨,打垮下游系统,前面会加个消息队列,平滑流量冲击。比如:秒杀活动。生活中像电源适配器也是这个原理。应用解耦。两个应用,通过消息系统间接建立关系,避免一个系统宕机后对另一个系统的影响,提升系统的可用性。如:下单异步扣减库存消息通讯。内置了高效的通信机制,可用于消息通讯。如:点对点消息队列、聊天室。常用的消息框架有哪些?答案:ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaQ,RocketMQ、Pulsar 等MQ技术选型?答案:对比了 Kafka、RocketMQ 、Pulsar 三个框架,时耗、吞吐量、可靠性、事务、副本同步策略、多租户、动态扩容、故障恢复等评估指标。如果对于消息队列的功能和性能要求不是很高,那么RabbitMQ就够了,开箱即用。如果系统使用消息队列主要场景是处理在线业务,比如在交易系统中用消息队列传递订单,RocketMQ 的低延迟和金融级的稳定性就可以满足。要处理海量的消息,像收集日志、监控信息或是前端的埋点这类数据,或是你的应用场景大量使用 了大数据、流计算相关的开源产品,那 Kafka 就是最合适的了。如果数据量很大,同时不希望有 Kafka 的高延迟,刚好业务场景是金融场景。RocketMQ 对 Topic 运营不太友好,特别是不支持按 Topic 删除失效消息,以及不具备宕机 Failover 能力。那么 Pulsar 可能就是你的一个选择了。消息模型有哪些?答案:1、点对点模式 2、发布/订阅模式如何保证 MQ 消息不丢失?答案:在了解消息中间件的运作模式后,主要从三个方面来考虑这个问题:1、生产端,不丢失消息2、MQ服务端,存储本身不丢失消息3、消费端,不丢失消息如何解决消息的重复消费?答案:生产端为了保证消息发送成功,可能会重复推送(直到收到成功ACK),会产生重复消息。但是一个成熟的MQ Server框架一般会想办法解决,避免存储重复消息(比如:空间换时间,存储已处理过的message_id),给生产端提供一个幂等性的发送消息接口。但是消费端却无法根本解决这个问题,在高并发标准要求下,拉取消息+业务处理+提交消费位移需要做事务处理,另外消费端服务可能宕机,很可能会拉取到重复消息。所以,只能业务端自己做控制,对于已经消费成功的消息,本地数据库表或Redis缓存业务标识,每次处理前先进行校验,保证幂等。如何保证 MQ消息是有序的?答案:有些业务有上下文要求,比如:电商行业的下单、付款、发货、确认收货,每个环节都会发送消息。而消费端拉取并消费消息时,也是希望按正常的状态机流程进行。所以对消息就有了顺序要求。解决思路:1、该 topic 强制采用一个分区,所有消息放到一个队列里,这样能达到全局顺序性。但是会损失高并发特性。2、局部有序,采用路由机制,将同一个订单的不同状态消息存储在一个分区 partition,单线程消费。比如Kafka就提供了一个接口扩展 org.apache.kafka.clients.Partitioner,方便开发人员按照自己的业务场景来定制路由规则。消息堆积如何处理?答案:主要是消息的消费速度跟不上生产速度,从而导致消息堆积。解决思路:1、可能是刚上线的业务,或者大促活动,流量评估不到位,这时需要增加消费组的机器数量,提升整体消费能力2、也可能是消费端的问题,正常情况,一条消息处理需要10ms,但是优化不到位或者线上bug,现在要500ms,那么消费端的整体处理速度会下降50倍。这时,我们就要针对性的排查业务代码。Tom哥之前带的团队就有小伙伴出现这个问题,当时是数据库的一条sql没有命中索引,导致单条消息处理耗时拉长,进而导致消息堆积,线上报警,不过凭我们丰富的经验,很快就定位解决了。如何保证数据一致性问题?答案:为了解耦,引入异步消息机制。先进行本地数据库操作,处理成功后,再发送MQ消息,由消费端进行后续操作。比如:电商订单下单成功后,要通知扣减库存。这两者一定要保证事务操作,否则就会出现数据不一致问题。这时候,我们就需要引入事务消息来解决这个问题。另外,在消费环节,也可能出现数据不一致情况。我们可以采用最终一致性原则,增加重试机制。事务消息是如何实现?答案:1、生产者先发送一条半事务消息到MQ2、MQ收到消息后返回ack确认3、生产者开始执行本地事务4、if 本地事务执行成功,发送commit到MQ;失败,发送rollback5、如果MQ⻓时间未收到生产者的二次确认commit或rollback,MQ对生产者发起反向回查6、生产者查询事务执行最终状态7、根据查询事务状态,再次提交二次确认MQ框架 如何实现高吞吐量?答案:1、消息的批量处理2、消息压缩,节省传输带宽和存储空间3、零拷贝4、磁盘的顺序写入5、page cache 页缓存,由操作系统异步将缓存中的数据刷到磁盘,以及高效的内存读取6、分区设计,一个逻辑topic下面挂载N个分区,每个分区可以对应不同的机器消费消息,并发设计。Kafka 为什么不支持读写分离?答案:我们知道,生产端写入消息、消费端拉取消息都是与leader 副本交互的,并没有像mysql数据库那样,master负责写,slave负责读。这种设计主要是从两个方面考虑:1、数据一致性。一主多从,leader副本的数据同步到follower副本有一定的延时,因此每个follower副本的消息位移也不一样,而消费端是通过消费位移来控制消息拉取进度,多个副本间要维护同一个消费位移的一致性。如果引入分布式锁,保证并发安全,非常耗费性能。2、实时性。leader副本的数据同步到follower副本有一定的延时,如果网络较差,延迟会很严重,无法满足实时性业务需求。综上考虑,读写操作都是针对 leader 副本进行的,而 follower 副本主要是用于数据的备份。MQ框架如何做到高可用性?答案:以Kafka框架为例,其他的MQ框架原理类似。Kafka 由多个 broker 组成,每个 broker 是一个节点。你创建一个 topic,这个 topic 可以划分为多个 partition,每个 partition 存放在不同的 broker 上,每个 partition 存放一部分数据,每个 partition 有多个 replica 副本。写的时候,leader 会负责把数据同步到所有 follower 上去,读的时候就直接读 leader 上的数据即可。如果某个 broker 宕机了,没事儿,那个 broker 上面的 partition 在其他机器上都有副本,此时会从 follower 中重新选举一个新的 leader 出来,大家继续读写那个新的 leader 即可。这就是所谓的高可用性。
2022年03月05日
18 阅读
0 评论
0 点赞
2022-02-22
Springboot使用Thymeleaf时静态资源不起作用解决方法
Springboot项目将HTML与CSS,JS都分别放入了resources文件夹下的templates与static文件夹下了。 HTML中CSS与JS的引用部分需要做修改JS部分,增加了 th:src="@{路径}",另外,图片的引用也需要添加<script th:src="@{/js/jquery.min.js}" src="../static/js/jquery.min.js" th:></script> <script th:src="@{/js/semantic.min.js}" src="../static/js/semantic.min.js"></script>CSS部分,增加了 th:href="@{路径}" <link rel="stylesheet" href="../static/css/semantic.min.css" th:href="@{/css/semantic.min.css}"> <link rel="stylesheet" href="../static/css/me.css" th:href="@{/css/me.css}">然后在 application.yml 中增加配置: web: resources: static-locations: classpath:/static/,classpath:/templates/另外,最好也修改 thymeleaf 的缓存为 false thymeleaf: mode: HTML cache: false最后rebuild一下项目,通常问题就解决了。
2022年02月22日
17 阅读
0 评论
0 点赞
2022-02-22
9 个非常实用的 shell 脚本
1、Dos攻击防范(自动屏蔽攻击 IP)#!/bin/bash DATE=$(date +%d/%b/%Y:%H:%M) LOG_FILE=/usr/local/nginx/logs/demo2.access.log ABNORMAL_IP=$(tail -n5000 $LOG_FILE |grep $DATE |awk '{a[$1]++}END{for(i in a)if(a[i]>10)print i}') for IP in $ABNORMAL_IP; do if [ $(iptables -vnL |grep -c "$IP") -eq 0 ]; then iptables -I INPUT -s $IP -j DROP echo "$(date +'%F_%T') $IP" >> /tmp/drop_ip.log fi done2、Linux 系统发送告警脚本# yum install mailx # vi /etc/mail.rc set from=baojingtongzhi@163.com smtp=smtp.163.com set smtp-auth-user=baojingtongzhi@163.com smtp-auth-password=123456 set smtp-auth=login3、MySQL 数据库备份单循环#!/bin/bash DATE=$(date +%F_%H-%M-%S) HOST=localhost USER=backup PASS=123.com BACKUP_DIR=/data/db_backup DB_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "show databases;" 2>/dev/null |egrep -v "Database|information_schema|mysql|performance_schema|sys") for DB in $DB_LIST; do BACKUP_NAME=$BACKUP_DIR/${DB}_${DATE}.sql if ! mysqldump -h$HOST -u$USER -p$PASS -B $DB > $BACKUP_NAME 2>/dev/null; then echo "$BACKUP_NAME 备份失败!" fi done4、MySQL 数据库备份多循环#!/bin/bash DATE=$(date +%F_%H-%M-%S) HOST=localhost USER=backup PASS=123.com BACKUP_DIR=/data/db_backup DB_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "show databases;" 2>/dev/null |egrep -v "Database|information_schema|mysql|performance_schema|sys") for DB in $DB_LIST; do BACKUP_DB_DIR=$BACKUP_DIR/${DB}_${DATE} [ ! -d $BACKUP_DB_DIR ] && mkdir -p $BACKUP_DB_DIR &>/dev/null TABLE_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "use $DB;show tables;" 2>/dev/null) for TABLE in $TABLE_LIST; do BACKUP_NAME=$BACKUP_DB_DIR/${TABLE}.sql if ! mysqldump -h$HOST -u$USER -p$PASS $DB $TABLE > $BACKUP_NAME 2>/dev/null; then echo "$BACKUP_NAME 备份失败!" fi done done5、Nginx 访问访问日志按天切割#!/bin/bash LOG_DIR=/usr/local/nginx/logs YESTERDAY_TIME=$(date -d "yesterday" +%F) LOG_MONTH_DIR=$LOG_DIR/$(date +"%Y-%m") LOG_FILE_LIST="default.access.log" for LOG_FILE in $LOG_FILE_LIST; do [ ! -d $LOG_MONTH_DIR ] && mkdir -p $LOG_MONTH_DIR mv $LOG_DIR/$LOG_FILE $LOG_MONTH_DIR/${LOG_FILE}_${YESTERDAY_TIME} done kill -USR1 $(cat /var/run/nginx.pid)6、Nginx 访问日志分析脚本#!/bin/bash # 日志格式: $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" LOG_FILE=$1 echo "统计访问最多的10个IP" awk '{a[$1]++}END{print "UV:",length(a);for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr |head -10 echo "----------------------" echo "统计时间段访问最多的IP" awk '$4>="[01/Dec/2018:13:20:25" && $4<="[27/Nov/2018:16:20:49"{a[$1]++}END{for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr|head -10 echo "----------------------" echo "统计访问最多的10个页面" awk '{a[$7]++}END{print "PV:",length(a);for(v in a){if(a[v]>10)print v,a[v]}}' $LOG_FILE |sort -k2 -nr echo "----------------------" echo "统计访问页面状态码数量" awk '{a[$7" "$9]++}END{for(v in a){if(a[v]>5)print v,a[v]}}'7、查看网卡实时流量脚本#!/bin/bash NIC=$1 echo -e " In ------ Out" while true; do OLD_IN=$(awk '$0~"'$NIC'"{print $2}' /proc/net/dev) OLD_OUT=$(awk '$0~"'$NIC'"{print $10}' /proc/net/dev) sleep 1 NEW_IN=$(awk '$0~"'$NIC'"{print $2}' /proc/net/dev) NEW_OUT=$(awk '$0~"'$NIC'"{print $10}' /proc/net/dev) IN=$(printf "%.1f%s" "$((($NEW_IN-$OLD_IN)/1024))" "KB/s") OUT=$(printf "%.1f%s" "$((($NEW_OUT-$OLD_OUT)/1024))" "KB/s") echo "$IN $OUT" sleep 1 done8、服务器系统配置初始化脚本#/bin/bash # 设置时区并同步时间 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime if ! crontab -l |grep ntpdate &>/dev/null ; then (echo "* 1 * * * ntpdate time.windows.com >/dev/null 2>&1";crontab -l) |crontab fi # 禁用selinux sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config # 关闭防火墙 if egrep "7.[0-9]" /etc/redhat-release &>/dev/null; then systemctl stop firewalld systemctl disable firewalld elif egrep "6.[0-9]" /etc/redhat-release &>/dev/null; then service iptables stop chkconfig iptables off fi # 历史命令显示操作时间 if ! grep HISTTIMEFORMAT /etc/bashrc; then echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/bashrc fi # SSH超时时间 if ! grep "TMOUT=600" /etc/profile &>/dev/null; then echo "export TMOUT=600" >> /etc/profile fi # 禁止root远程登录 sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config # 禁止定时任务向发送邮件 sed -i 's/^MAILTO=root/MAILTO=""/' /etc/crontab # 设置最大打开文件数 if ! grep "* soft nofile 65535" /etc/security/limits.conf &>/dev/null; then cat >> /etc/security/limits.conf << EOF * soft nofile 65535 * hard nofile 65535 EOF fi # 系统内核优化 cat >> /etc/sysctl.conf << EOF net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_tw_buckets = 20480 net.ipv4.tcp_max_syn_backlog = 20480 net.core.netdev_max_backlog = 262144 net.ipv4.tcp_fin_timeout = 20 EOF # 减少SWAP使用 echo "0" > /proc/sys/vm/swappiness # 安装系统性能分析工具及其他 yum install gcc make autoconf vim sysstat net-tools iostat if9、监控 100 台服务器磁盘利用率脚本#!/bin/bash HOST_INFO=host.info for IP in $(awk '/^[^#]/{print $1}' $HOST_INFO); do USER=$(awk -v ip=$IP 'ip==$1{print $2}' $HOST_INFO) PORT=$(awk -v ip=$IP 'ip==$1{print $3}' $HOST_INFO) TMP_FILE=/tmp/disk.tmp ssh -p $PORT $USER@$IP 'df -h' > $TMP_FILE USE_RATE_LIST=$(awk 'BEGIN{OFS="="}/^\/dev/{print $NF,int($5)}' $TMP_FILE) for USE_RATE in $USE_RATE_LIST; do PART_NAME=${USE_RATE%=*} USE_RATE=${USE_RATE#*=} if [ $USE_RATE -ge 80 ]; then echo "Warning: $PART_NAME Partition usage $USE_RATE%!" fi done done
2022年02月22日
39 阅读
0 评论
0 点赞
2022-02-06
电脑端Chrome获取京东pt_key和pt_pin 京东cookie
本文以 Google Chrome 浏览器为例1、运行 Google Chrome 浏览器,windows 按 Ctrl + Shift + N, macOS 按 ⌘ + ⇧ + N 打开无痕模式,再按 F12 或者 ⌘ + ⌥ + I 启动调试模式; 2、地址栏输入 移动版京东 https://m.jd.com/ , 点击右下角 未登录 图标进行登录 3、登录成功后,在 调试器 → 网络(Network) → Fetch/XHR,点击最后一条请求数据,查看 标头(header) 4、在 标头(header) 里面查找 cookie 属性,里面就有我们需要的 pt_key 和 pt_pin
2022年02月06日
45 阅读
0 评论
0 点赞
2022-01-10
使用Semantic UI不显示部分图标解决办法
问题场景:使用Semantic UI写前端页面的时候,原来是使用CDN引入js跟css的,但是总感觉每次修改完以后,到浏览器查看,渲染速度好慢,可能是因为网络问题。然后就下载到本地,加载本地资源。就出现了图标无法显示,都是显示为一个方框原因:估计跟icon版本有关,本地引入的话需要两个css解决办法使用cdn加载icon的css,或者是将icon的css<link rel='stylesheet prefetch' href='https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/components/icon.min.css'>
2022年01月10日
20 阅读
0 评论
0 点赞
2022-01-08
苹果maccms使用免费Cloudflare CDN加速自定义缓存规则的设置方法
苹果CMS使用免费Cloudflare CDN加速自定义缓存规则的设置方法首先登陆 Cloudflare 网站登陆地址: https://dash.cloudflare.com/login 登录后选择你的域名选择下图圈中选项! 依次选择 Greate Page Rule 按钮,添加下图规则!前台规则后台规则
2022年01月08日
315 阅读
2 评论
0 点赞
2021-12-31
宝塔面板安装指定历史版本教程-宝塔版本回退教程
使用宝塔官方一键命令,直接搭建出来的是最新版的宝塔。但是,很多时候我们需要使用低版本的,这个时候就没有办法直接使用一键命令来搭建了。下面就讲讲怎么安装指定历史版本宝塔面板。一、版本合集https://download.bt.cn/install/update/LinuxPanel-7.7.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.6.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.5.2.ziphttps://download.bt.cn/install/update/LinuxPanel-7.5.1.ziphttps://download.bt.cn/install/update/LinuxPanel-7.4.8.ziphttps://download.bt.cn/install/update/LinuxPanel-7.4.7.ziphttps://download.bt.cn/install/update/LinuxPanel-7.4.6.ziphttps://download.bt.cn/install/update/LinuxPanel-7.4.5.zip(会有绑定提醒)https://download.bt.cn/install/update/LinuxPanel-7.4.3.ziphttps://download.bt.cn/install/update/LinuxPanel-7.4.2.zip (有pma漏洞)https://download.bt.cn/install/update/LinuxPanel-7.4.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.3.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.2.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.1.1.ziphttps://download.bt.cn/install/update/LinuxPanel-7.1.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.0.3.ziphttps://download.bt.cn/install/update/LinuxPanel-7.0.2.ziphttps://download.bt.cn/install/update/LinuxPanel-7.0.1.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.9.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.8.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.7.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.6.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.5.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.2.ziphttps://download.bt.cn/install/update/LinuxPanel-6.8.5.ziphttps://download.bt.cn/install/update/LinuxPanel-6.8.4.ziphttps://download.bt.cn/install/update/LinuxPanel-6.8.3.ziphttps://download.bt.cn/install/update/LinuxPanel-6.8.2.ziphttps://download.bt.cn/install/update/LinuxPanel-6.6.6.ziphttps://download.bt.cn/install/update/LinuxPanel-6.5.0.ziphttps://download.bt.cn/install/update/LinuxPanel-6.4.0.ziphttps://download.bt.cn/install/update/LinuxPanel-6.3.0.ziphttps://download.bt.cn/install/update/LinuxPanel-6.2.0.ziphttps://download.bt.cn/install/update/LinuxPanel-6.1.0.ziphttps://download.bt.cn/install/update/LinuxPanel-5.9.2.ziphttps://download.bt.cn/install/update/LinuxPanel-5.9.1.zip(目前仍然很多人在用的版本)https://download.bt.cn/install/update/LinuxPanel-5.9.0.ziphttps://download.bt.cn/install/update/LinuxPanel-5.2.0.ziphttps://download.bt.cn/install/update/LinuxPanel-5.0.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.9.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.8.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.7.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.6.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.5.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.4.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.3.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.2.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.1.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.0.0.ziphttps://download.bt.cn/install/update/LinuxPanel-3.9.0.ziphttps://download.bt.cn/install/update/LinuxPanel-3.8.0.ziphttps://download.bt.cn/install/update/LinuxPanel-3.7.0.ziphttps://download.bt.cn/install/update/LinuxPanel-3.5.0.zip二、安装方法1、先使用官方命令正常进行宝塔安装ubuntu, debian, deepinwget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh2、根据官方手动升级/降级方法进行覆盖安装1、下载离线升级包,并将升级包上传到服务器中的/root目录 2、unzip LinuxPanel-* #解压文件 3、cd panel #切换到升级包目录 4、bash update.sh #执行升级脚本 5、cd .. && rm -f LinuxPanel-*.zip && rm -rf panel #删除升级包3、覆盖安装后如果出现登录用户名、密码错误无法登陆时,可以使用以下命令重置密码cd /www/server/panel && python tools.py panel yourpasswd4、为了更安全起见,可以执行以下内容,避免一些问题~~ (非必需)echo '127.0.0.1 bt.cn' >>/etc/hosts
2021年12月31日
73 阅读
0 评论
0 点赞
2021-12-27
macOS终端设置代理-iTerm-Terminal设置socks5代理
即使你电脑使用科学上网工具,设置了全局代理,使用终端的时候,仍然卡的一批,就比如 brew 和 git。brew的还可以通过换源来解决,但是听说换源有可能会带来未知的小毛病,当然是用原生的brew好啊brew代理brew 是用 curl 下载的,所以给 curl 设置 socks5 代理即可在 ~/.curlrc 文件中输入代理地址即可(没有的话需要先创建)socks5 = "127.0.0.1:7890"不用说端口都要换成你自己的啦。不然肯定没效果设置完以后,最好在终端执行一下source ~/.curlrc设置以后在终端执行:curl cip.cc未走代理的情况: 走代理的情况: git代理brew 有时需要从 github 拉仓库,此时需要给 git 设置全局代理git config --global http.proxy "socks5://127.0.0.1:7890" git config --global https.proxy "socks5://127.0.0.1:7890"取消git代理git config --global --unset http.proxy git config --global --unset https.proxy使用alias控制git代理alias githttp='git config --global http.proxy "socks5://127.0.0.1:1234"' alias githttps='git config --global https.proxy "socks5://127.0.0.1:1234"' alias ungithttp='git config --global --unset http.proxy' alias ungithttps='git config --global --unset https.proxy'终端全局代理在终端直接执行 alias 命令:alias setproxy='export ALL_PROXY=socks5://127.0.0.1:1234; echo '\''Set proxy successfully'\' alias unsetproxy='unset ALL_PROXY; echo '\''Unset proxy successfully'\'设置完以后,启用和关闭终端下的代理则执行 setproxy 和 unsetproxy 即可测试是否生效同样是在终端执行curl cip.cc
2021年12月27日
114 阅读
0 评论
0 点赞
1
...
5
6
7
...
18