阅读视图

发现新文章,点击刷新页面。
🔲 ☆

在 requests 中使用代理

代理介绍

对于常见的正向代理有 HTTP 代理和 HTTPS 代理,对于 HTTP 代理只能代理到 HTTP 站点的请求,对于 HTTPS 代理只能代理到 HTTPS 站点的请求。

命令行中使用

代理参数

有些命令行软件是有代理参数的,比如 curl .

curl --proxy 23.45.122.54:8763 http://ifconfig.io
curl --proxy 23.45.122.54:8763 https://ifconfig.io

实际上,在这里对于具体的代理类型未设置的话,会对 HTTP 请求采用 HTTP 代理,对 HTTPS 请求采用 HTTPS 代理,所以就相当于:

curl --proxy http://23.45.122.54:8763 http://ifconfig.io
curl --proxy https://23.45.122.54:8763 https://ifconfig.io

一般的正向代理站点都无法接收 HTTPS 的请求代理,对于 NGINX 可以参考 使用 nginx 进行 HTTPS 的正向代理 正确配置之后,就可以在 HTTPS 代理中使用 HTTP schema 代理 HTTPS 站点请求。

curl --proxy http://23.45.122.54:8763 https://ifconfig.io

环境变量

但是有些命令行软件比如 wget 就没有代理参数,这时就可以设置环境变量参数。

http_proxy=23.45.122.54:8763 wget http://ifconfig.io
https_proxy=23.45.122.54:8763 wget https://ifconfig.io

在这里同样的需要匹配 HTTP|HTTPS 请求类型和 HTTP|HTTPS 代理类型的,对于未设置代理地址的 schema 时候是会自动生成。

在这里因为只是设置环境变量,所以其实换个思路可以用 wget -e 的参数 wget -e http_proxy=23.45.122.54:8763 http://ifconfig.io

如果需要长期使用,可以写入配置

export use_proxy=on
export http_proxy=http://your_ip_proxy:port/
export https_proxy=$http_proxy
export ftp_proxy=$http_proxy
export dns_proxy=$http_proxy
export rsync_proxy=$http_proxy
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"

其他工具

如果以上都不能满足需求的话,或许可以试下使用其他一些工具来实现,比如 ProxyChains 之类的做代理转发,或者 Caddy, Squid 搭建代理服务器。

socks 代理

除了常见的 HTTP 代理和 HTTPS 代理之外,还有 socks 代理,常用的比如 socks5 代理。

curl 可以直接使用

curl --socks5 127.0.0.1:1086 ifconfig.io
curl --socks5 127.0.0.1:1086 http://ifconfig.io
curl --socks5 127.0.0.1:1086 https://ifconfig.io
curl --socks5 socks5://127.0.0.1:1086 https://ifconfig.io

requests 中使用

为什么要专门强调在 requests 中使用,因为在 python 里 requests 是使用最广的 HTTP 客户端,我使用 python 发出的 HTTP 请求大部分是由 requests 完成的。

HTTP 和 HTTPS 代理

在 requests 中使用代理可以通过 proxies 参数设置, 同样的 HTTP 请求需要使用 HTTP 代理对应的 HTTP schema。

# -*- coding: utf-8 -*-

import requests


def http_proxy():
    proxies = {"http": "http://23.45.122.54:8763", "https": "https://23.45.122.54:8763"}
    resp = requests.request("GET", "http://httpbin.org/get", proxies=proxies)
    print(resp.status_code)
    print(resp.content)
    resp = requests.request("GET", "https://httpbin.org/get", proxies=proxies)
    print(resp.status_code)
    print(resp.content)


if __name__ == '__main__':
    http_proxy()

但是实际上,对于 HTTPS 的请求使用 HTTPS 的代理,但是却可以使用 HTTP 的 schema 。

# -*- coding: utf-8 -*-

import requests


def https_proxy():
    proxies = {"http": "http://23.45.122.54:8763", "https": "http://23.45.122.54:8763"}
    resp = requests.request("GET", "http://httpbin.org/get", proxies=proxies)
    print(resp.status_code)
    print(resp.content)
    resp = requests.request("GET", "https://httpbin.org/get", proxies=proxies)
    print(resp.status_code)
    print(resp.content)


if __name__ == '__main__':
    https_proxy()

socks 代理

在 requests 中使用 socks5 代理有两种方式

  1. requests 的 proxies 参数其实支持 socks5 ,但是需要先安装相关依赖包 pip install "requests[socks]"
  2. 使用 socks 包 hook 发出的 HTTP 请求,全局生效,需要先安装 socks 包 pip install pysocks
# -*- coding: utf-8 -*-

import requests


def get_by_proxy():
    proxies = {"http": "socks5://127.0.0.1:1086", "https": "socks5://127.0.0.1:1086"}
    resp = requests.request("GET", "http://httpbin.org/get", proxies=proxies)
    print(resp.status_code)
    print(resp.content)


def hook_proxy():
    import socks
    import socket

    socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 1086)
    socket.socket = socks.socksocket

    resp = requests.request("GET", "http://httpbin.org/get")
    print(resp.status_code)
    print(resp.content)


if __name__ == '__main__':
    get_by_proxy()
    hook_proxy()

获取代理

  1. 自己搭建,无论是 HTTP 代理或者 HTTPS 代理还是 socks5 代理,都是有有办法的。
  2. 网上公开的临时资源,可以通过一些工具获取,比如 ProxyBroker, 或者 proxy_pool

参考链接

How to set proxy for wget?
How to make python Requests work via socks proxy
Python中Request 使用socks5代理的两种方法(个人推荐方法二)

🔲 ☆

NUC 装机指南

NUC

NUC 全称 Next Unit of Computing 是 Intel 推出的迷你电脑

装机一览

给大家展示一下 NUC ,实际非常小巧,只有我的手掌🖐大小,长没有我的手机长,宽也没有我的手机长,高还是没有我的手机长。

然后看一下在桌面上的效果,比显示器底座还小

别看他小,其实性能非常强悍, 八代 i7 处理器,32G内存,1T 固态硬盘。

不服跑个分

对比一下我在用的 MacBook Pro 13寸2019款

以我双十一的时候购买的 NUC8i7BEH 为例, 加上内存和硬盘总价在5k以内,极具性价比。

NUC8i7BEH                   2499
西数 SN550 1TB               765
金士顿 DDDR4 16G*2           899
HP 24MH 显示器               789

如果你需要一个体积小巧,性能强悍,性价比高的电脑,不妨考虑下 NUC 。

装机清单

NUC

一般 NUC 套件不包括内存和硬盘,只有 Intel 的芯片和主板,包括集成显卡,无线网卡,蓝牙驱动等模块,内存和硬盘需要自己选购和安装,这样也能锻炼自己的动手能力。

代号 图片 代数 上市时间 NUC型号 CPU型号 显卡型号 功耗 最大内存 硬盘卡槽 其他  
豆子峡谷
Bean Canyon
第八代 2018 NUC8i3BEH i3-8109U Intel Iris Plus 655 28W 32G
DDR4-2400
SATA盘位 *1,M.2插槽 *1 USB3.1*4, Type-C*1, 千兆网口,无线网卡,蓝牙5.0  
        NUC8i5BEH i5-8259U Intel Iris Plus 655          
        NUC8i7BEH i7-8559U Intel Iris Plus 655          
冥王峡谷
Hades Canyon
第八代 2018 NUC8i7HNK i7‑8705G Intel® HD Graphics 630 & AMD Radeon RX Vega M GL 65W 32 GB
DDR4-2400
M.2插槽 *2 USB3.0*5, USB3.1*1, Type-C*1, 千兆网口*2,无线网卡,蓝牙4.2  
      NUC8i7HVK i7‑8809G Intel® HD Graphics 630 & AMD Radeon RX Vega M GH 100W 32 GB DDR4-2400 M.2插槽 *2  
幽冥峡谷
Ghost Canyon
第九代 2019 NUC9i5QNX i5-9300H Intel® UHD Graphics 630 45W 64 GB
DDR4-2400
SATA盘位 *2, M.2插槽 *2 USB3.1*6, Type-C*2, 千兆网口,无线网卡,蓝牙5.0  
      NUC9i7QNX i7-9750H Intel® UHD Graphics 630          
        NUC9i9QNX i9-9980HK Intel® UHD Graphics 630          
寒霜峡谷
Frost Canyon
第十代 2019 NUC10i3FNH i3-10110U Intel® UHD Graphics 25W 64 GB
DDR4-2666
SATA盘位 *1, M.2插槽 *1 USB3.1*3, Type-C*2, 千兆网口,无线网卡,蓝牙5.0  
        NUC10i5FNH i5-10210U Intel® UHD Graphics          
        NUC10i7FNH i7-10710U Intel® UHD Graphics          

CPU

英特尔(Intel) 的酷睿(Core) i3 i5 i7 和 i9 系列是不同的 CPU 型号,就像 iPhone 12 mini,iPhone 12, iPhone 12 plus 和 iPhone 12 max 是不同的型号. 然后还分代数,比如 iPhone 12 就是第 12 代,CPU 也分代数,最新的 10 代。

同型号中,最新的一代性能最强。同代型号中,数字越高的性能越强。跨代跨型号时,可能 i3 比 i7 更强

笔记本电脑上常见的 CPU 贴纸。

Intel 芯片的常见命名后缀

  • G:带G后缀的CPU通常被称为Kaby Lake G处理器,这类处理器是Intel和AMD合作的产品。CPU部分由Intel负责,GPU部分则是AMD提供,两者连同超强性能的HBM2显存一同整合在同一块基板上,性能强大。这类产品已经可以脱离独立显卡流畅工作。代表作Core i7-8809G。
  • H:在第八代以前,H的意思是bga焊接封装(不可动手更换),与其相对应的是M(pga封装,一般都可更换同代CPU)。八代开始,H对i7来说不止意味着bga封装,也意味着6核(Hexagon),相对的是Q(4核,quad),H不代表有高于本代平均水准的gpu,也没有自带超线程的意思,比如i3 8100H就是4核4线。
  • HK:这类产品是在H后缀的处理器上加入了超频属性,从此笔记本产品也可以超频了。代表作Core i9-8950HK。
  • HQ:四代CPU中就出现的CPU后缀,代表作为i7 4700hq。
  • K:这个就不多说了,普通玩家接触最多的后缀,搭配合适的主板可以进行超频。代表作Core i7-8700K。
  • X:带有这一后缀的CPU一般都具有王霸之气,基本上就是当代最强桌面级CPU的代号,一般会搭配X99/X299/X399这类平台使用,代表作Core i7-7820X。
  • XE:比X后缀还牛逼的CPU后缀,这类产品都有与生俱来的超王霸之气,旗舰中的旗舰,顶级中的顶级产品。目前市面上只有一款:Core i9-7980XE。
  • U:低压版移动处理器,被用在各种上网本、超极本、超薄本上,代表作Core i7-8550U。
  • M:这一后缀代表双核移动版处理器,但是从4代CPU以后就再也见不到了。代表作Core i5-4310M。
  • R:和B后缀类似的移动版处理器,代表作Core i7-5775R。
  • T:低压版桌面处理器,功耗和性能都比不带后缀的产品低。代表作Core i7-8700T。
  • Y:比M后缀的处理器还早的产品,也是超低电压版移动处理器,在极短时间内被M后缀的处理器所取代,代表作Core i3-3229Y。
  • B:这一后缀是为了满足一些例如一体机等紧凑型设备的需要而开发出来的,这类CPU并不靠针脚与主板连接,而是利用FCBGA1440封装直接焊接在主板上。代表作Core i5-8500B。
  • C:这个后缀只在5代CPU上出现过,但因为5代CPU特别短命,了解这一代产品的人不多,所以导致这个后缀也基本没人了解。代表作:Core i7-5775C。

除了 CPU 之外,还有 AMD 的锐龙(Ryzen) 芯片最近几年也比较猛。

AMD, YES

此外,Apple 的 M1 芯片则表示,在座的各位都是弟弟。

显卡

显卡根据安装位置可以分为核心显卡,集成显卡和独立显卡,核心显卡是指 CPU 集成的显卡就是核心显卡,主板集成的就是普通集成显卡,独立显卡就是有独立芯片,一般需要独立外接的显卡。

以 NUC8i7BEH 为例,采用的是 Iris Plus Graphics 655 核显,加上第八代Core i7-8559U处理器,与 2018款 MacBook Pro 13寸高配版一样的搭配。

关于显卡有两点要明确

  1. 一般电脑自带的集成显卡是不如独立显卡的,但是不排除部分集显的性能要优于垃圾独显
  2. 集显也不是不能用,除了在大型游戏或者视频渲染的场景下需要独显,在工作生活场景已经足够。

独显主要有 英伟达(NVIDIA) 的 GXT 和 RTX 系列,核弹 GPU 性能爆炸,体积也挺大。

英伟达(NVIDIA) 的图灵架构(Turing) GPU 设计主要有 GeForce RTX 和 GTX 系列。RTX 系列提供了实时光线追踪和AI,有了更加逼真的场景,游戏体验也变得更加令人振奋。

内存

注意 NUC 使用的是笔记本内存条,不是台式机内存条

内存条需要注意带宽频率需要和 CPU 支持的频率保持一致,内存主频越高性能越强。

现在内存已经到了 DDR4 的第四代内存,常见的频率有

  • DDR4入门级:2133MHz
  • DDR4中端型:2400MHz
  • DDR4强悍型:2600MHz
  • DDR4至尊型:3200MHz, 3600MHz

硬盘

现在主流都是使用固态硬盘,使用固态硬盘能让你的电脑性能大幅提升,因为固态硬盘的存取速度要远超出传统机械硬盘。

固态硬盘(M.2)目前主要有两种技术协议:

  • M.2 SATA 最快 600MB/s
  • M.2 NVMe 最快 3000MB/s

SATA 是机械硬盘使用的传输协议,同时 SATA 接口也是机械硬盘的插槽接口。

装机实战

NUC 其实主要就是安装内存和硬盘,其实非常简单。

一根1T 固态硬盘条

两根16G 内存条

拆下后盖和装硬盘需要螺丝刀,一般会送。

装内存条就和装笔记本内存条一样,往上套然后往下压,听到卡的一声就安装好了,看下NUC内部装好之后的样子。

系统
NUC 装机是不带系统的,需要自己安装系统。

张华装上了 Mac 系统,李萍装上了 Linux 系统,我装上了 Windows 系统:我们都有光明的前途。

参考信息

Wiki-Next Unit of Computing
Wiki-酷睿
科普讲堂——英特尔CPU的命名规则
2020台式电脑组装配置清单(总目录)
2021台式电脑配置、配置清单推荐
强势来袭!一图看懂新品NUC,不止一款!
一图看懂英特尔NUC迷你主机(续集)
Intel NUC8i7BEH 评测
用Intel NUC8i7BEH6打造高性能“小钢炮”,Iris Plus 655 GT3e核显机使用体验
MacBook Pro (13-inch Mid 2019)
Intel(R) Client Systems NUC8i7BEH
怎么让小白理解intel处理器(CPU)的分类?
英特尔最强NUC评测:百瓦功耗能吃鸡

❌