Linux

让你的SSH通过HTTP代理或者SOCKS5代理

socks5代理 有时候你的SSH因为某些原因, 或者你的VPS的SSH端口被某些无法阻挡的力量被封禁了, 你使用普通的SSH方式无法登录你的服务器, 所以这时候我们需要使用一些方式, 让你的SSH通过代理链接你的服务器, 进而解决这个问题. 直接配置 如何让你的ssh链接使用socks代理呢, 我们可以使用nc命令, 使用ssh的ProxyCommand配合nc可以让ssh通过你设置的代理访问服务器 $ ssh -o ProxyCommand="nc -X 5 -x 127.0.0.1:1080 %h %p" root@server 其中使用ProxyCommand命令, 带上具体内容nc -X 5

  • 壳壳
    壳壳
3 min read
Docker

Golang 新手可能会踩的 50 个坑

Golang 新手可能会踩的 50 个坑 Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到。 如果花时间学习官方 doc、wiki、讨论邮件列表、 Rob Pike 的大量文章以及 Go 的源码,会发现这篇文章中的坑是很常见的,新手跳过这些坑,能减少大量调试代码的时间。

  • 壳壳
    壳壳
50 min read
Docker

使用drone和gogs搭建自己的CI/CD系统

drone是一个基于容器的本地持续交付平台,和Jenkins是差不多的,然后配合轻量级的gogs来作为git管理,都是基于golang开发的很符合我的需求,我们来把它们结合作为一个完整的CI、CD平台。 首先我们要先安装docker,上次的篇幅我们已经说过了我就不赘述了。 需要的东西有:linux,docker,docker-compose,drone,gogs,git等。 安装gogs和drone 配合荣锋亮大哥的yml文件和docker-compose我们可以很容易安装他们: version: '3' services: drone-server: image: drone/drone:latest ports: - "8080:80" - 8843:

  • 壳壳
    壳壳
5 min read
Docker

使用docker安装Jenkins并且配置一个agent(二)

Jenkins界面 首先我们进入Jenkins的管理界面,首先使用docker启动上一节在docker安装好的Jenkins。 $ docker container start jenkins 启动好了之后打开浏览器输入http://localhost:8000 进入Jenkins的管理界面。 然后点击系统管理,节点管理。 然后我们创建一个新的agent。 agent创建 我们点击左边的new node创建一个新的agent。 我们保持默认值不变,直接保存。 然后我们在节点中心里边点击agent的这个节点,看到如下界面。 如果你没有看到,可以在这个agent的configure里边的 Launch method 设置成通过Java web启动代理就可以了。 然后我们看到里边会有一行命令,来说明怎么执行Jenkins agent ,我们只需要他的secret和host就好了。 启动agent节点 使用docker安装Jenkins

  • 壳壳
    壳壳
2 min read
Python

简单配置你的CLI/终端通过代理

有时候开发任务需要代理的时候, 可以这么配置你的bashrc或者zshrc文件, 一般直接导出你的本地工具开放的端口. 我已经假设你已经配置好了一些科学上网工具, 已经有本地客户端, 并监听了诸如1080或者8080的http或者socks5端口. 完了之后需要执行$ source bashrc/zshrc来利用source命令重新执行你修改后的rc文件. 接着可以执行$ curl ip.gs来检查你的CLI/终端工具是否已经通过代理. 最后就可以愉快地执行brew, curl, npm, pip, go get等任务啦😂

  • 壳壳
    壳壳
1 min read
Golang

使用Go,Gin和Gorm开发简单的CRUD API

介绍[1] Golang是一种令人兴奋的语言,但新手可能会被新的语法和各种框架所淹没。基础知识入门可能会成为一项挑战。 在这个例子中,我想展示创建功能API所需的最少代码。我们将开发一个简单的API,为基本模型提供创建,读取,更新和删除(CRUD)功能。使用和对象关系映射(ORM)工具,我们将能够快速更新我们的数据模型,所有数据模型都在100行代码之下。所以让我们开始吧。 在https://github.com/cgrant/gin-gorm-api-example可以找到这篇文章的所有代码。 package main import ( "fmt" "github.com/

  • 壳壳
    壳壳
3 min read
Golang

学习go语言习题笔记之进阶知识

进阶[1] 当像这样增加一个值的时候,什么类型可以工作? …这里没有指针运算, 因此如果这样写: *p++, 它被解释为 (*p)++:首先解析引用然后增加值。 答案:这仅能工作于指向数字(int, uint 等等)的指针值。 为什么它不能工作在所有类型上? 答案:++ 仅仅定义在数字类型上,同时由于在 Go 中没有运算符重载,所以会 在其他类型上失败(编译错误)。 使用练习 Q12 的答案,利用 interface 使其更加通用。让它至少能同时工 作于

  • 壳壳
    壳壳
4 min read
Git

merge request的基本流程

准备工作 一开始需要你克隆仓库的代码下来: git clone https://github.com/xxxx/helloworld.git 然后创建一条你的分支, 和master分支有别, 然后checkout到你刚刚创建的分支中去, 命令行类似: cd helloworld git checkout -b fun 这样相当于创建一个fun的分支并且检出到fun分支下, 检出之后你就不是在master分支下了 编码部分 到了新分支之后, 编写你的代码, 然后提交, 使用命令 git add . 添加你的更改过的文件, 然后再输入 git commit

  • 壳壳
    壳壳
2 min read