在 macOS 上配置 SSH 隧道并创建 SOCKS 代理

创建 SOCKS 代理是一种便捷的方式,可以将所有流量通过 SSH 隧道转发。以下是我在 macOS 上配置 SOCKS 代理的步骤。

创建 SOCKS 代理

  1. 打开终端: 首先,打开终端应用。

  2. 运行 SSH 命令: 输入以下命令,创建一个 SOCKS 代理:

    ssh -D 1080 user@1.2.3.4
    

    user 替换为用户名。这条命令会在本地的 1080 端口创建一个 SOCKS 代理。

配置应用程序使用 SOCKS 代理

接下来,我需要配置支持 SOCKS 代理的应用程序(如浏览器):

  1. 打开系统偏好设置: 点击苹果菜单,选择 系统偏好设置

  2. 选择网络: 在网络设置中,选择当前使用的网络连接(例如 Wi-Fi),然后点击 高级

  3. 配置代理: 在 代理 选项卡中,勾选 SOCKS 代理,并在代理服务器框中输入 127.0.0.1 和端口 1080

  4. 保存设置: 点击 ,然后 应用 保存更改。

持续运行 SSH 隧道

如果希望 SSH 隧道在后台持续运行,可以使用以下命令:

ssh -D 1080 -N user@1.2.3.4

在这个命令中,-N 参数表示不执行任何远程命令,只保持连接,这样可以让 SOCKS 代理在后台持续运行。这样,我就可以在需要时安全地转发流量。

高阶玩法

如果不想在 macOS 的系统网络代理设置中使用 SOCKS 代理,以下是几种更灵活的方式,暂时只做记录。这里假设我们想仅代理Citrix viewer这个软件。

方法 1: 使用 proxychains 工具

proxychains 是一个工具,可以强制指定的应用程序通过代理(如 SOCKS5)进行网络连接。

步骤:

  1. 安装 proxychains-ng
    • 在 macOS 上安装 `proxychains-ng:
      brew install proxychains-ng
      
  2. 配置 proxychains-ng:
    • 编辑 proxychains 的配置文件,通常在 /usr/local/etc/proxychains.conf
    • 在文件末尾,添加你的 SSH 隧道的 SOCKS 代理地址,例如:
      socks5  127.0.0.1 1080
      
  3. 使用 proxychains 启动 Citrix Viewer:
    • 在 SSH 隧道开启的情况下,使用 proxychains 来启动 Citrix Viewer,让它通过隧道访问网络:
      proxychains4 /Applications/Citrix\ Workspace.app/Contents/MacOS/Citrix\ Viewer
      
    • 这样,Citrix Viewer 的所有流量都会通过 SSH SOCKS 代理,而不影响 macOS 的全局代理设置。

方法 2: 使用 sshuttle 来转发流量

sshuttle 是一种简单的 VPN 解决方案,可以将指定的流量通过 SSH 隧道路由。不同于系统级 VPN,它允许我们控制流量的范围和转发规则。

步骤:

  1. 安装 sshuttle:
    • 在 macOS 上,使用 Homebrew 安装 sshuttle
      brew install sshuttle
      
  2. 启动 sshuttle:
    • 使用 sshuttle 来启动隧道,并将指定的流量通过 SSH 隧道。

      如果希望 sshuttle 在后台运行,可以添加 -D 参数

      sshuttle -r user@1.2.3.4 10.0.0.0/8
      sshuttle -r user@1.2.3.4 1.2.3.5/32 9.0.0.0/8 10.0.0.0/8 -D
      
  3. 验证代理是否生效

    要验证代理是否生效,你可以通过 ping 或 curl 测试是否成功通过代理。例如:

    ping 1.2.3.4
    

方法 3: 使用 Proxifier

Proxifier 是 macOS 上的一款 GUI 工具,允许为特定的应用程序(如 Citrix Viewer)单独设置代理,而不影响系统的其他应用程序。不过要注意的是这是一个付费软件。


ssh rsync 登陆时跳过host检查

SSH 公钥检查是一个重要的安全机制,可以防范中间人劫持等黑客攻击。不过我在做rsync的自动化任务时就遇到问题了:因为我的rsync的server和client都是容器启动的,host变化是很正常的事。所以必须要绕过这样的提醒错误:

The authenticity of host '192.168.0.110 (192.168.0.110)' can't be established.
RSA key fingerprint is a3:ca:ad:95:a1:45:d2:57:3a:e9:e7:75:a8:4c:1f:9f.
Are you sure you want to continue connecting (yes/no)?

或者

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
e9:0c:36:89:7f:3c:07:71:09:5a:9f:28:8c:44:e9:05.
Please contact your system administrator.
Add correct host key in /home/jiangxin/.ssh/known_hosts to get rid of this message.
Offending key in /home/jiangxin/.ssh/known_hosts:81
RSA host key for 192.168.0.110 has changed and you have requested strict checking.
Host key verification failed.

在ssh配置文件中配置如下即可:

vi ~/.ssh/config 

Host 192.168.1.10
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

或者批量设置:

vi ~/.ssh/config 

Host 192.168.0.*
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

参考资料


专利相关备忘

专利和文献是我日常工作的一部分,这篇文章记录一些网站,不定期更新。

中文专利

  1. 国家专利局: http://pss-system.cnipa.gov.cn/

  2. 知嘟嘟 IPRDB,这家的平台检索很快,而且免费注册没有年费限制,检索分析都是免费的挺好用的。

  3. Patenthub http://www.patenthub.cn,有年费门槛限制,不过只是用来检索的话还是挺快的

  4. SooPAT http://www.soopat.com,好处就是 连注册都不用,直接就能用。

  5. CINPR

  6. 知网

  7. patentcloud

    image-20211008161218319

  8. 商标检索数据库,摩知轮

  9. 无效专利检索: 国知局 http://reexam.cnipa.gov.cn/

  10. 专利诉讼检索:

    • https://www.itslaw.com/
    • http://openlaw.cn/
    • https://www.faxin.cn/
  11. 企业信息检索

    • 企查查
    • 天眼查

国际专利

  1. google patents ,免费中的最强!

  2. 日本 J-PlatPat

    • 简单检索

    • OPD(One Portal Dossier)是日本全球专利案卷检索系统,,可以查9个国家/地区。

      image-20211008150236896

      image-20211008150206922

      可以下载pdf。

    • 特許・実用新案検索

    • 分类号检索PMGS

      image-20211008153042325

  3. 美 Global Dossier

  4. 欧 espacenet,可以做逻辑OR/AND/NOT搜索

    点击列表,右边显示内容。另外可以下载搜索结果列表。

    image-20211008153548498

  5. 法国 Orbin

  6. DII(Derwent Innovations Index),

  7. LENS,免费开放的专利+学术检索数据库。

    image-20211008155603643

    image-20211008155640638

  8. 语义检索octimine

  9. 欧盟外观设计专利检索 eSearch plus

  10. 日本外观检索数据库 Graphic Image Park

  11. 台湾 新颖数位iptech

文献检索

  • Sci-Hub
  • LibGen
  • Soscholar 天玑学术网中科院计算机研究所开发,涵盖 ACM、IEEE、DBLP、CITESEER,以及众多国外学者的个人博客,目前数据库内的论文储量接近 1000 万。
  • Citeseerx 免费论文搜索网以Postscrip和PDF文件格式存在的学术论文,全文达138万多篇,引文2674万多条,内容主要涉及计算机和信息科学领域,主题包括智能代理、人工智能、硬件、软件工程、操作系统等。
  • OCLC 学术论文搜索引擎计算机图书馆服务的会员制
  • Arnetminer 研究者学术搜索网该网站涵盖了100多万名研究者、300万篇论文信息、3700多万引用关系以及8000多个会议信息。
  • FindaRticles 文献论文搜索引擎涵盖艺术与娱乐、汽车、商业与经融、计算机与技术、健康与健身、新闻与社会、科学教育、体育等各个方面顶极刊物的上千万篇论文。其中大部分为免费全文资料,检索操作简单。它所拥有的文献总量达1100万篇,资料来源于杂志、定期刊物和报纸等。
  • MinimanuScript 学术文献维基百科平台维基类学术文献百科。 在MiniManuscript上你能看到其他读者在读完某篇文献后整理出来的框架:这篇论文究竟用什么方法研究了什么问题,有了怎样的发现等。
  • SemanticScholar 免费学术搜索引擎检索结果来自于期刊、学术会议资料或者是学术机构的文献。这个搜索引擎能检索到 80% 的免费论文文献,大约有 300 万份,另外它直接提供图表预览,看起来能方便研究人员省下更多筛选的工作。
  • Base Search 德国比勒菲尔德学术搜索引擎Base是有德国著名的比勒费尔德大学图书馆开发的一个多学科的学术搜索引擎。它提供对全球异构学术资源的集成检索服务。Base整合的文献大约有160个开放资源即超过200万个文档数据信息。

论文会议

  • ACM SIGKDD (Knowledge Discovery and Data Mining,简称 KDD)是数据挖掘领域的国际顶级会议。KDD Cup比赛是由SIGKDD主办的数据挖掘研究领域的国际顶级赛事,从1997年开始,每年举办一次,是目前数据挖掘领域最有影响力的赛事。

参考资料


k8s 多云sig 备忘

kubernetes社区链接:

github 上的子项目

  • kubefed,多集群管理的控制平面.
    • 每周进行一到两次讨论,但是我看他们的会议记录,已经两年没更新了。据说已经不做了,跑去做Karmada了?
  • kubemci,多集群 Ingress,已弃用,改为Ingress for Anthos.
  • Federation v1,已弃用,上个版本的多集群管理。
  • about-api,不懂什么鬼
  • mcs-api,不懂什么鬼
  • work-api,不懂什么鬼

一些类似的项目:


Kubernetes 新手issue整理

捡几个新手 issue做个记录,也是k8s学习的一部分吧,看了这么多,心里也有底了。新手可以进入这个快速链接

附一、github的社交用语

在issue和pr里常看到一些缩写语,这里记录下来:

Prow 命令 角色限制 描述
/lgtm 任何人均可使用,但只有评阅人和批准人使用此命令的时候才会触发自动化操作 用来表明你已经完成 PR 的评阅并对其所作变更表示满意
/approve 批准人 批准某 PR 可以合并
/assign 评阅人或批准人 指派某人来评阅或批准某 PR
/close 评阅人或批准人 关闭 Issue 或 PR
/hold 任何人 添加 do-not-merge/hold 标签,用来表明 PR 不应被自动合并
/hold cancel 任何人 去掉 do-not-merge/hold 标签
  • PR:Pull Request.
  • AKA: also known as,又名
  • /assign <username> ,接下这个issue,我要承包了。
  • LGTM/SGTM, Looks/Sounds Good To Me, 看起来不错, 没有问题(别人 review 完 PR 之后)
  • WIP, Work In Progress, 开发中(work in progress, do not merge yet)
  • CC, Carbon Copy, 抄送(邮件),相当于 @。
  • PTAL, Please Take A Look, 帮我看下(请别人 review 自己的 PR)
  • RFC, Request For Comments, 请求评论, i.e. I think this is a good idea, lets discuss
  • AFAIK / AFAICT, As Far As I Know / Can Tell, 据我所知
  • IMHO, In My Humble Opinion, 以我的拙见(多用于邮件和网络)
  • FYI, For your information, 供你参考
  • AFK, Away From the Keyboard, 稍后回来
  • ACK, ACKnowledgement, 同意, i.e. agreed/accepted change
  • NACK/NAK, Negative ACKnowledgement, 不同意, i.e. disagree with change and/or concept

附二、github kubernetes 的label

https://kubernetes.io/zh/docs/contribute/review/for-approvers/

在issue的右上角可以看到这些label,每周都有一个特定的文档批准人自愿负责对 PR 进行分类和评阅。

标签 描述
priority/critical-urgent 应马上处理
priority/important-soon 应在 3 个月内处理
priority/important-longterm 应在 6 个月内处理
priority/backlog 可无限期地推迟,可在人手充足时处理
priority/awaiting-more-evidence 占位符,标示 Issue 可能是一个不错的 Issue,避免该 Issue 被忽略或遗忘
help or good first issue 适合对 Kubernetes 或 SIG Docs 经验较少的贡献者来处理。
  • good first issue: 新手友好的!
  • help wanted: 成员致力于提供新的贡献者提供额外援助。
  • kind
    • cleanup: 清理。
    • documentation
    • bug
  • lifecycle
    • stale: 过去 90 天内某 Issue 无人问津.
    • frozen: 即使超过 90 天仍无人处理,也不会进入停滞状态。
    • backlog
    • active
  • priority
  • sig
    • node
    • network
  • needs-triage
  • triage
    • accepted
    • duplicate: 重复的 Issue

附三、github kubernetes sigs