Ubuntu设置HTTP与SOCKS5代理进行流量转发

需求:由于内网上网账号有登录设备数量限制,无法集群内所有物理机都登录账号,因此设置一台机器作为流量出口,设置HTTP与SOCKS5代理。

代理服务端设置

使用tinyproxy进行HTTP代理,使用danted进行SOCKS5代理。

apt install tinyproxy
apt install danted-server

此处我们设置HTTP代理端口1081,SOCKS5代理端口1080,忽略账号验证(可能不安全,建议设置)。

如果要设置账号验证,任意设置一个账号用于连接。

sudo useradd ss5 -g proxy
sudo passwd ss5
# disable login
sudo vi /etc/passwd

/etc/tinyproxy(其中许多保持默认,只需要修改port与allow即可)

##
## tinyproxy.conf -- tinyproxy daemon configuration file
##
## This example tinyproxy.conf file contains example settings
## with explanations in comments. For decriptions of all
## parameters, see the tinproxy.conf(5) manual page.
##

#
# User/Group: This allows you to set the user and group that will be
# used for tinyproxy after the initial binding to the port has been done
# as the root user. Either the user or group name or the UID or GID
# number may be used.
#
User ss5
Group proxy

#
# Port: Specify the port which tinyproxy will listen on.  Please note
# that should you choose to run on a port lower than 1024 you will need
# to start tinyproxy using root.
#
Port 1081

#
# Timeout: The maximum number of seconds of inactivity a connection is
# allowed to have before it is closed by tinyproxy.
#
Timeout 600

#
# DefaultErrorFile: The HTML file that gets sent if there is no
# HTML file defined with an ErrorFile keyword for the HTTP error
# that has occured.
#
DefaultErrorFile "/usr/share/tinyproxy/default.html"

#
# StatFile: The HTML file that gets sent when a request is made
# for the stathost.  If this file doesn't exist a basic page is
# hardcoded in tinyproxy.
#
StatFile "/usr/share/tinyproxy/stats.html"

#
# LogFile: Allows you to specify the location where information should
# be logged to.  If you would prefer to log to syslog, then disable this
# and enable the Syslog directive.  These directives are mutually
# exclusive. If neither Syslog nor LogFile are specified, output goes
# to stdout.
#
LogFile "/var/log/tinyproxy/tinyproxy.log"

#
# Syslog: Tell tinyproxy to use syslog instead of a logfile.  This
# option must not be enabled if the Logfile directive is being used.
# These two directives are mutually exclusive.
#
#Syslog On

#
# LogLevel: Warning
#
# Set the logging level. Allowed settings are:
#	Critical	(least verbose)
#	Error
#	Warning
#	Notice
#	Connect		(to log connections without Info's noise)
#	Info		(most verbose)
#
# The LogLevel logs from the set level and above. For example, if the
# LogLevel was set to Warning, then all log messages from Warning to
# Critical would be output, but Notice and below would be suppressed.
#
LogLevel Info

#
# PidFile: Write the PID of the main tinyproxy thread to this file so it
# can be used for signalling purposes.
# If not specified, no pidfile will be written.
#
PidFile "/run/tinyproxy/tinyproxy.pid"

#
# MaxClients: This is the absolute highest number of threads which will
# be created. In other words, only MaxClients number of clients can be
# connected at the same time.
#
MaxClients 100

#
# MinSpareServers/MaxSpareServers: These settings set the upper and
# lower limit for the number of spare servers which should be available.
#
# If the number of spare servers falls below MinSpareServers then new
# server processes will be spawned.  If the number of servers exceeds
# MaxSpareServers then the extras will be killed off.
#
MinSpareServers 5
MaxSpareServers 20

#
# StartServers: The number of servers to start initially.
#
StartServers 10

#
# MaxRequestsPerChild: The number of connections a thread will handle
# before it is killed. In practise this should be set to 0, which
# disables thread reaping. If you do notice problems with memory
# leakage, then set this to something like 10000.
#
MaxRequestsPerChild 0

#
# Allow: Customization of authorization controls. If there are any
# access control keywords then the default action is to DENY. Otherwise,
# the default action is ALLOW.
#
# The order of the controls are important. All incoming connections are
# tested against the controls based on order.
#
Allow 127.0.0.1
#Allow 192.168.0.0/16
#Allow 172.16.0.0/12
Allow 10.0.0.0/8

ConnectPort 443
ConnectPort 563

/etc/danted.conf

logoutput: syslog stdout /var/log/sockd/sockd.log

internal: eno1 port = 1080

external: ppp0

socksmethod: none

clientmethod: none

user.privileged: root

user.notprivileged: ss5

client pass {

from: 0.0.0.0/0 port 1-65535 to: 0.0.0.0/0

}

socks pass {       

from: 0.0.0.0/0 to: 0.0.0.0/0       

command: bind connect udpassociate       

log: error # connect disconnect iooperation

}

socks pass {       

from: 0.0.0.0/0 to: 0.0.0.0/0       

command: bindreply udpreply       

log: error # connect disconnect iooperation

}

运行

cd /etc/tinyproxy
service tinyproxy start
/etc/init.d/danted start

查看端口是否正常监听即可。如果danted遇到问题,可查看danted -V检查配置文件。

sudo netstat -anp | grep 1080

代理客户端设置

代理设置加入环境变量:

export all_proxy="socks5://IP:1080"
export ALL_PROXY="socks5://IP:1080"
export http_proxy="socks5://IP:1080"
export https_proxy="socks5://IP:1080"

为wget设置代理:~/.wgetrc

#You can set the default proxies for Wget to use for http, https, and ftp.
# They will override the value in the environment.
http_proxy=http://IP:1081
https_proxy=http://IP:1081
ftp_proxy=http://IP:1081

# If you do not want to use proxy at all, set this to off.
use_proxy = on

WSL设置代理

由于许多数据集下载命令需要Linux环境,而平时工作使用Windows设备,服务器设置代理又不方便,因此在Windows上通过WSL安装Linux子系统,并利用宿主机的系统代理使子系统能够访问公网。

安装WSL

Windows Subsystem for Linux(WSL)允许直接在Windows上运行GNU/Linux环境。
通过Microsoft Store下载,例如搜索Ubuntu,安装即可。
安装后,子系统的文件系统可直接访问:

WSL文件系统在宿主机访问

设置WSL代理

初次运行时,需要设置账号密码,然后保存文件.proxyrc

#!/bin/bash
host_ip=$(cat /etc/resolv.conf |grep "nameserver" |cut -f 2 -d " ")
export ALL_PROXY="http://$host_ip:10809"
export https_proxy="http://$host_ip:10809"
export http_proxy="http://$host_ip:10809"

其中端口10809仅为示意,需与宿主机的HTTP代理端口一致。

然后运行source .proxyrc

设置sudo环境

sudo命令默认不会继承环境变量。运行vim /etc/sudoers,在Defaults env_reset下方加入一行:

Defaults env_keep += "http_proxy https_proxy ftp_proxy all_proxy no_proxy"

将Windows脚本转化为Unix脚本

出现类似scripts/download_dtu_ground_truth.sh: line 2: $'\r': command not found的问题,因为Windows的换行为\r\n,而Unix为\n

sudo apt update
sudo apt install dos2unix
sudo dos2unix [filepath]

至此设置完成。

Build a Docker Image

为了避免遗忘,整理一下开发使用Docker配置PyTorch/TensorFlow环境的方法


DockerFile

# For more information, please refer to https://aka.ms/vscode-docker-python
FROM cddlyf/pytorch1.3.0-tensorflow-py36-cuda10.1:latest

# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE=1

# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1

# Copy pip requirements
COPY requirements.txt .

# Copy pre-downloaded wheels
COPY ./wheels ./wheels

# switch to ustc pip source
# RUN pip install --default-timeout=10 -U pip
# RUN pip config set global.index-url http://pypi.mirrors.ustc.edu.cn/simple
# RUN pip config set install.trusted-host pypi.mirrors.ustc.edu.cn
# RUN pip install -r requirements.txt

# Run pip install from file
RUN pip install --no-index --find-links=./wheels -r requirements.txt

RUN pip install torch-cluster==1.4.5
RUN pip install torch-geometric==1.3.2
RUN pip install torch-scatter==1.3.2
RUN pip install torch-sparse==0.4.3

# Install libraries
COPY ./mesh /mesh
# RUN apt-get install libboost-dev
WORKDIR /mesh
RUN make all

# Copy code from . to $CONTAINER/app
WORKDIR /app
COPY . /app

# Remove wheels
RUN rm -rf /app/wheels

# Creates a non-root user with an explicit UID and adds permission to access the /app folder
# For more info, please refer to https://aka.ms/vscode-docker-python-configure-containers
# RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
# USER appuser

# During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
# CMD ["python", "main.py"]

一些记录:

  1. 由于pip安装时间长,经常崩溃,可以先使用pip download -d wheels -r requirements.txt将依赖wheels下载下来,再进行本地安装
  2. 配置错误产生中间文件太多,可以用docker image prune , docker container prune 清理

构建与运行

docker build --pull -f "/your/path/to/Dockerfile" -t "img_name:tag" "/your/path/to/workdir"

# Replace 6667 with your port
docker run -p 6667:22  -it -d --name="container_name" img_name:tag

# Test docker ssh
docker ps
ssh -p 6667 root@0.0.0.0

Issues & Solve

Last Update: 21/11/20

CUDA out of memory

  • Kill dead processes;
# replace '*' with 0, 1, ..., find running $PID
lsof /dev/nvidia*
kill -9 $PID
  • reload Nvidia driver;
# Reload without rebooting
# close display management
systemctl isolate multi-user.target

# disable nvidia driver(if returns relying on xxx,rmmod them as well)
rmmod nvidia

# load nvidia driver
modprobe nvidia

# restart display management
systemctl start graphical.target

Or

sudo apt install nvidia-modprobe
  • Reboot.

Docker Run without Root

sudo chmod a+rw /var/run/docker.sock

Docker Nvidia Runtime

Install Nvidia Container Runtime

curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \
  sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update
sudo apt-get install nvidia-container-runtime

Modify Config

sudo vim /etc/docker/daemon.json
# /etc/docker/daemon.json
{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    },
    "default-runtime": "nvidia"
}

Reload docker

sudo systemctl daemon-reload
sudo systemctl restart docker

Mount WebDav as 777

sudo apt install davfs2
sudo mount -t davfs http://your-url-of-webdav/ /your/mount/point/path -o uid=$YOURUID,gid=$YOURGID,dir_mode=0777,file_mode=0777

Mount Disk as 777

# find target disk, like /dev/sda or /dev/sda1
sudo fdisk -l

# mount once. file permission is (777-umask)
sudo mount /dev/your-disk /your/mount/point/path -o umask=000

# mount as startup
# find $UID, like 3e395c6c-8e04-4bd6-93cd-1152fa797262
sudo blkid /dev/your-disk
sudo vim /etc/fstab
# /etc/fstab
# add line
UID=$UID /your/mount/point/path ext4 auto,exec,user,rw,umask=000 0 0

如何五天玩遍西藏林芝

如何五天玩遍西藏林芝

这篇文章讲什么

  1. 超小白西藏林芝自驾旅行攻略
  2. 超详细西藏旅行指南
  3. 超短时间旅行策划

看完后你将收获

  • 即使没有去过高原
  • 旅行小白也可以轻松hold住
  • 抄作业可以立刻出发的
  • 最短五天就能看湖泊草甸峡谷雪山冰川桃花
  • 吃喝玩乐绝对不踩雷的

西藏林芝桃花攻略

当时在98上找人一起去的帖子在这里👉组队去西藏林芝看桃花!!!

吃喝玩乐游记看这里👉林芝桃花之旅【已完结】

由@wyq1000 写的游记

前言

上上周末决定要去西藏林芝玩,昨天刚刚回到杭州。计划准备3天就出发,玩了6天(其中一天在拉萨),基本把冬春季节西藏林芝地区好玩的都玩遍了。把组织这趟旅行过程中的踩坑和经验总结一下,写一个简单攻略方便更多人了解林芝的美!

很多朋友对西藏都好奇向往,但对于旅行往往有一些误解:

  • 高原很危险,身体受不了大多数人在海拔3000左右不会有剧烈的高原反应(类似宿醉比较贴切),且能很快适应(高反的部分后面会详细说)
  • 西藏旅行很远很贵这趟全部花费约5-6k(机票占了大头,提早订会更便宜)。如果对住宿要求低一点,还能更便宜
  • 藏民语言不通/边境危险基本不存在语言不通,开店的藏人基本都会说汉语,四川人很多。另外西藏很安全
  • 自驾困难自驾只要一车有两三个人能轮换开就可以,西藏的高速路况非常好(比江浙沪大多数道路都好),国道线边上加油站/饭店/村庄平均半小时就有(越野路线不在本攻略范围内)

林芝简介

红框为林芝大致范围

林芝,是西藏自治区下辖地级市,古称工布。位于西藏东南部,雅鲁藏布江中下游,其西部和西南部分别与拉萨市、山南市相连,西连那曲市嘉黎县、东接昌都市,南部部分区域在藏南地区(印度占据)、缅甸接壤,被称为西藏江南,有世界上最深的峡谷——雅鲁藏布江大峡谷和世界第三深度的峡谷帕隆藏布大峡谷。 林芝风景秀丽,很多地带被誉为“西藏江南”,有林芝桃花节,有丰富多彩的南伊沟等。还有被誉为西藏西双版纳的墨脱县和察隅县底部。 林芝平均海拔3100米,幅员面积11.7万平方千米,实际控制7.6万平方千米,截至2016年,林芝市总人口23.1万。

(百度百科)

林芝玩什么

西藏以自然景观为主,有少数人文景观。

做了一个林芝景点地图!特别直观。

我们的路线

下面按照桃花->湖泊->雪山->森林的顺序详写。

桃花

桃花从三月初到四月末陆续开放,不同地区因为气候条件不同开放有早有晚,建议关注当年桃花开放情况。就2021年的经验来说:

#### 波密桃花沟

2021.03.21 波密倾多镇 桃花陆续盛开,尚未全盛

第一张调了色,后两张基本无修

波密的桃花主要在倾多镇,从318国道的岔口往里车程5分钟不到。

优势:

人不多

背景有雪山很好看

路边的红白木栅很好看

不足:

桃花树不密集

部分桃花在村民的农田里,需要收费进入(5-10/人),推荐外面拍拍看看就够好看了

#### 林芝八一镇附近(嘎啦村)

2021.03.23 嘎啦村 桃花基本全盛

基本无修图

(网图供参考)

天气不好,不太好看,但现场人实在太多,体验不佳。附近还有几个其他的村子,应该大差不差,可能其他村子游客会少一点

优势:

离市区近,车程二十多分钟

桃花密集

桃花树较粗

不足:

人太多像公园

商业化

背景板不如波密,只有山坡比较单调(当天天气不好可能也有关系),拍照角度不好找

#### 林芝米林县(机场附近)

2021.03.22-23 机场高速附近民宿 后山是大片桃花林但都没有开放

无修图

(网图供参考)

雅鲁藏布江大峡谷,但不是山高谷深的那种感觉,这一段是两侧山峦夹着大片滩涂,山上有大片桃花林,受温度影响开放最晚,三月底陆续开放一直到四月底。

民宿一九一九桃花沟十分好评,边上就是大片桃林。南开校友开的民宿,几位服务员是南开大学的退休老师,旺季接待游客淡季供南开的老师疗养+支教学生住宿,ins工业风装修。

另外还有一个山泽居酒店,风景和住宿条件应该也很好(我们没去)。

优势:

很大片很密集

离机场近,可以民宿住一晚第二天回程方便

不足:

开花晚

#### 索松村

我们时间来不及没有去,从林芝市区过去往返得半天以上,考虑在那边住一晚会比较好。

网图供参考,这张应该还算真实

巴松措附近

桃花时间可能更晚,我们三月中旬过去没有看到桃花。

湖泊

不是重点所以简要讲讲。去西藏一般都会去纳木错/羊卓雍错两个大湖,相比之下我觉得林芝的巴松措这些可去可不去。

巴松措

一个湖,湖心有个小岛,有供奉莲花生大师的寺庙。风景还可以。

在拉萨-林芝的林拉公路往里车程半个多小时,门票一百多略贵,可以上岛走走。

如果去其他湖,不必特意去。可以在林芝-拉萨的路上顺便去。

然乌湖

2021.03.22 318国道旁

然乌湖细细长长,除了1-3月,因为雪山融水夹带泥沙的缘故湖水基本都浑浊。主要是去然乌看雪山冰川。

帕隆藏布峡谷

从林芝-然乌段的318国道沿着峡谷,水是纯正青色,绝无p图

雪山冰川

然乌附近冰川资源丰富,米堆冰川隔着湖看,来古冰川可以近距离甚至进入冰洞

来古冰川

很可惜我们去的时候由于冰川融化,湖面冰层较薄,已经不能直接接触冰川了,隔着百米看冰川。

一百元骑马走到冰川边上,当地人会牵着马。我们去的那天下大雪,有点冷。

色季拉山口

318国道边

山口可以望到圣山南迦巴瓦峰,山顶积雪+下雪+冰冻

森林草甸

从林芝到然乌这一段边上基本都是森林。

鲁朗有大片草原,但这个季节还是黄的。

以下内容是从这次旅行策划的文档里摘过来的。建议大家也可以在做攻略的时候用共享文档收集个人信息(方便订票)和旅行安排

西藏旅行注意事项

  • 高原反应本质是缺氧,注意不要剧烈运动,不要过于兴奋,起床、起身、站起蹲下请缓慢,如果出现耳鸣、眩晕尽快躺下休息并吸氧
  • 禁止洗澡,洗澡会导致血管扩张,加重缺氧(类似老人蒸桑拿容易休克)
  • 禁止饮酒/兴奋性饮料,酒精会导致血管扩张
  • 少量多餐,不要一下子吃很多,加重胃肠道负担容易导致大脑缺氧;不要不吃东西,吃不下可以吃糖巧克力,高原行动比较消耗能量
  • 请出发前再次核对身份证件(记得带学生证)带齐,带核酸检测报告,口罩充足,航班行程无误,行李是否需要托运(少带点直接随身比较方便,转机有行李比较麻烦),建议- – 提前值机,适当带些现金(有些地方可能不能用电子支付)
  • 尊重藏民文化,拍照时(尤其是寺庙等)请确认允许拍照,寺庙注意着装

旅行准备工作

  • 当地温度较低,要带羽绒服手套帽子(实际体感白天和杭州差不多,晚上比较凉;然乌附近我们碰上大雪特别冷。)
  • 防晒霜唇膏(挺干的,吃辣多干燥容易上火,后悔没带润唇膏)
  • 行李尽量不要带太多。因为不建议洗澡换洗衣物不需要太多。
  • 可以适当带一些碳水能量食品(面包饼干等)。不建议带咖啡/茶/能量饮料,高反会导致睡眠质量下降,休息好很重要,出发前不要熬夜,不要感冒。
  • 做核酸检测。(但实际上核酸报告没有用上)
  • 如果涉及墨脱,山南,阿里等部分地区需要办理边境通行证(玉泉外东山弄派出所可以办理,杭州户口直接办理,外地户口需要表格学院签章),或者到拉萨后委托旅行社办理,一两百块。

携带药物

  • 感冒药/止痛药/肠胃药根据情况自备,睡眠不好的也可以考虑带助眠药。事实证明布洛芬永远的神,高反头痛睡不着吃点布洛芬就好了。
  • 到拉萨以后在药店购买氧气备用。有些药店会宰人,然乌那边旅店50两个大罐,拉萨药店30一个小罐,建议多比价。据高反严重的朋友说好像也没有多大用,不确定
  • 网上说醋甲唑胺可预防或减轻高反,提前2日左右按照说明书一日两片或遵医嘱(醋甲唑胺可能导致排尿增加,缺钾导致恶心不适,配合碳酸氢钠NaHCO3和氯化钾KCL缓释片)。我在美团买了但出发时还没送到,所以没有用上,效果未知。有相关专业的朋友可以看看是否需要

关于高原反应

Q 飞机比火车更容易高反吗 A 好像不一定,还是看个人。我们飞机直接到拉萨就是轻微头痛失眠,另外一个火车上来的朋友在火车上经过五千多米的地方一路呕吐头痛过来

Q 高反会适应吗 A 会的,第一天到拉萨三千多米有点疲惫头晕失眠挺正常的,吃点布洛芬好好睡觉。三天以后我们四五千米(短时间)随便蹦跶跑步也没啥问题(请勿模仿)

Q 林芝会有高反吗 A 林芝2900左右,基本都没有什么高反。因此建议先到林芝,适应后再去拉萨等高海拔地区

交通工具

飞机or火车?

飞机省时间&省力,基本一个白天就能到;火车时间更久,舒适度不高。个人建议去林芝直接飞机没有问题

租车

西藏当地要么跟团要么自驾,如果会开车自驾更方便,好安排行程。我们五个人飞猪租的本田crv,580一天供参考,可能根据时间和车型不同不一样。一般都可以讲价,但讲价空间不大。

路况

拉萨-林芝可以走林拉公路,高速,路况很好小心别超速就可以。拉萨-林芝单程大约4-5h。

林芝-波密-然乌走318国道,路况糟糕很多。单程大约7-9h,林芝-波密大约3-4h。

塌方+落石常有的事,沿着峡谷,几乎都是山路,大转弯很多,最好有一两个老驾驶员。

武警部队抢修的临时桥(真的要感谢人民子弟兵)

塌方后只剩一侧的土路,另一侧山崖下是怒涛

我们从然乌回程的时候,恰好赶上暴雪,山路湿滑冰冻,很多树被压断武警在抢修,差点以为当天回不去八一镇,疯狂赶夜路。

牦牛群堵在公路上

预算

机票来回3k +(租车+油费)人均150/天4 +食宿人均250/天6 =5000-6000/人

结束行程以后核算了以下我自己共花了五千九多一点,基本上一致

攻略抄作业

👇我们行程的全程攻略在这里,个人信息已经隐去,可以直接拿去抄作业

https://shimo.im/docs/9qyXcxGvRhhq6KP6/ 《林芝冲冲冲》,可复制链接后用石墨文档 App 或小程序打开

行程安排的一点小tips

因为这次有朋友临时去不了,导致大家多了一笔额外的分摊房费支出。这是显性的支出;隐形支出是其他人的机会成本(因为行程安排势必要考虑到每一个人的需要,本来可以去更多地方,或者多玩几天的)

真的建议大家(即使是很熟的朋友)出远门也要提前收分摊旅费,如果临时有事去不了也可以用来支付行程变更产生的支出。


暂时更新这么多

【日记】怪梦乱记

巨大的天穹,荒漠的星球,以及黑色石油般流动的物体不断刨开土地吞噬源石

梦其一

没有大气保护的荒漠岩质星球,从远处黑洞中伸出的犹如层叠光盘的圆盘组,一直连接到地表上空。其伸出黑色石油般的根系,刨开地表的岩石,橙色闪光的源石显露。黑色根系在吞噬源石。

星球很小,在近圆盘处有一小屋,似是这座矿场的管理者。另一处小屋在星球背面,是梦开始的地方。沿赤道一周是废旧轮胎和风扇,用来发电。

吞噬的源石经黑洞输送,合理猜测黑洞的背面是泰拉世界。

很凶的狗头鸟

梦其二

经高中食堂前的教学楼,一群麻雀与一只狗头鸟。当你嘲笑狗头鸟,它就会俯冲下来,愤怒地在走廊里来回蹿。猛然咬一口手。

要打狂犬疫苗

【日记】乡贤治理:中国乡土社会的现代重构

【摘    要】中国步入高速发展的时代,而绵延千年的乡土社会却面临消解,为乡村基层治理带来巨大问题与空前挑战。伴随着信息化的不断下沉,中国乡土社会开始以全新的方式进行重构,在这样的背景下,乡贤治理重新开始焕发光彩。本文从切身经历出发,阐释了乡土社会现代重构下的乡贤治理及其实践。

【关键词】乡贤治理;乡土社会;基层治理


中国,十四亿人,七亿多农村人口。中国发展的根本在乡村基层,“三农”问题是关系国计民生的根本性问题,而乡村的故事,从来与土地紧密相连(費孝通, 2018)。费孝通言,“从基层上看去,中国社会是乡土性的”,诚然。近些年来,基层治理愈加频繁地被提起,虽然此基层与先生所言“基层”意义未必一致——但要想弄清楚中国的基层治理问题,则必须理解中国农村社会的乡土性(李惊涛等, 2016)。

乡土社会的变迁

中国的农村是乡土社会吗?一度肯定的答案,随着中国进入二十一世纪变得些许模糊。改革开放数十年来,这头巨大的东方雄狮正搭乘着现代化与国际化的东风,奋力追赶时代的潮头。脚下的土地从人们眼中渐渐消隐,目光转向远方的潮头,中国的发展给传统的乡土农村带来新的变化。快速的城市化进程使大城市劳动机会空前集中,春运期间,有逾一亿农民工的返乡;城镇发展过程中大量征地,许多乡村消失,成为高楼林立的城市新区。伴随着人口的巨大流动与变迁,乡土社会的逐渐消解,成为新世纪中国农村绕不开的命题。

熟人社会,是乡土社会的重要属性。在一个村庄里,人人熟识,代代熟识。作为一个既住过城市也住过乡村的人,在幼时就已觉察到乡村这种“生于斯,死于斯”的熟人社会特性。孩童时期的我尚属于这个熟人社会中的新来者,每每与长辈出门遇见未见过我的村人,第一句话必然是:“阿耶,侬孙子啊?”对于这个熟人社会的成员来说,比起与我本身相关的其他一切,我的联系属性更为重要。应该将这个新来者置于社会关系网的何处,他的联系是怎样构成的?这始终是熟人社会中个体的最基本属性,正如人有名字一样自然。多年后,《指环王》电影的一幕令我想起幼时在熟人社会中的经历。“Aragorn, son of Arathorn”,正与饭桌上的闲谈“阿辉,阿荣拉(拉,方言意同“的”)儿子”有异曲同工之妙。

家族是乡土社会的重要构成。我幼年居住的村庄并不是严格意义上历史悠久的大家族,而是几个家族“开枝散叶”后形成的聚居群落,整体上而言是松散的,几户同姓人家虽然构成家族,彼此之间又是独立的小家庭。同姓的几家人逢年过节会聚到一起,而对于异姓的家庭,则仅限于公共事务上的来往。家族内部的老一辈还会对其他几个家庭的子女的读书、工作、婚恋提意见,相互照顾,甚至几家的狗都是同一脉系。记得一位向来对我非常照顾的婶婶嫁到外地,丈夫条件很好,在我上初中后仍常常寄回来名牌球鞋——她丈夫买来而又不怎么穿的鞋。在物质生活丰富的现代,家族之间的亲情仍然有机会以这种形式传递,在城里人看来是匪夷所思的。

长老统治,是乡土社会的另一个重要特点之一。家族的存在始终影响着村里的一切事务,同姓的几户人家内部有什么矛盾往往属于“内部问题”,解决起来要容易得多。一次,外公兄弟的女儿们因为分家造房涉嫌违规而被匿名举报。于是,家族中最有威望的大伯便责无旁贷地负责组织决断。当时尚小,具体的细节已记不清了,但按规定这栋房子是不能建的。经过数次家族讨论,最终大伯宣布:分家造房确实合理,房子已经开始造了也不便半途而废,新的宅基地占用的是经济价值不大的林地,房子可以继续造。家族里决定了,或也用了其他手段,便再没有人举报,房子也顺利地落成了。虽有包庇之嫌,却是乡土社会“无讼”的真实体现。

然而,伴随着快速城镇化,中国基层农村的乡土性日益淡去。独生的年轻一代渐渐离开乡村,扎根在城市。老一辈与新一代不再熟识,每每过年团聚,都要另开一桌给新生的面孔。家族成员之间不再像过去那样熟悉,即使同辈也很可能同坐一桌默默看手机。时代发展与人口流动,宣告着乡土社会的基础——熟人关系与家族关系的慢性死亡。

乡村的狂飙突进

老一辈渐次凋零,家族中渐渐没有了说话分量过硬的人,而年轻一辈长居在外,对于小小村子的事务不想管也管不着。给乡土社会的衰落降下最后一根稻草的,是人们突然发现千年来农村与农民赖以生存的土地忽然变得不那么重要了。土地流转是市场经济的必然结果,但接踵而至的土地转包让村庄在短短几年内几无可种之地。林地由于经济产出很少,首当其冲被承包给私人老板——以果业开发的名义,砍伐林木兴修别墅,承包期一百年,甚至比英帝国租借香港的时间更长。接着,良田也陆续承包了出去,曾经每家每户硕大的白铁皮谷仓拆卸成段堆在无人问津的角落,生产队时期购入的拖拉机以回收废铁的价格被卖掉,连捉鼠的猫都被汤饭养得慵懒。借熟人关系开始分销大米,生意火爆,竟比种稻更赚钱。

有的年轻人决定永远搬离村庄,顺便在走前将宅基地私自交易给了外地的富豪,建了三层地下室大理石干挂的隐秘豪宅;有的年轻人在海外打拼多年决定荣归故里,亲舅公却就宅基地交换狮子大开口,最终留下建造未完的三层烂尾洋楼愤然离去,入了新加坡籍。那是富人纸醉金迷的时代,那是农村人的未来扑朔迷离的时代。有的人决定永远离开生养自己的这片土地,有的人则在等待、踌躇与鸡毛蒜皮的争吵中老去。老人们担心身后集体土地会被收回而尽力榨干它的每一寸价值,年轻人们则如嗅觉敏锐的鲳条鱼,一听到拆迁的风吹草动就回家给祖屋加装颇具现代主义的叠床架屋式外墙装饰,宛如一场大型行为艺术。

土地是农村的灵魂,出卖灵魂就能享有荣华富贵的迷梦。所有人都在待价而沽,留下混乱、魔幻、狂飙突进的乡村。

乡贤治理与乡土社会的重构

从封建时期的乡绅治理,到合作社、生产队模式下的集体治理,再到改革开放后面临发展挑战与机遇的农村治理,中国的农村基层治理在过去一百年中发生了史无前例的深刻变革(付翠莲, 2016)。而在浙江,一种新的治理模式正在显现其威力。“乡贤治理”,这种诞生于千年之前的治理模式的重新提出,却并不只是旧瓶装新酒(沈寨, 2016)。

乡贤治理如何可能?且看现代背景下的乡土社会如何重构。一度接近消亡的乡土社会,在信息科技的发展下重新焕发光彩。

互联网+社交,毫无疑问拉近了人与人之间的距离。人人都能通过微信分享自己的即时所见所感,家族大群永远有刷新不完的99+,让人怀疑他们是否不用上班——没错,他们真的不用。连年逾90的阿太都能够划拉两下屏幕,虽然从不发言,却也愿意抱着超大号老年字体的手机在藤椅上晒太阳,听儿孙们的语音。在村头夹石厂做工的,在农贸市场卖菜的,在家辅导孙女功课的,在大城市996的,甚至连远在新加坡的人,都能够时不时在群里露个脸抢个红包。同一个家族的儿孙们或许未有很多机会见面,却能够通过小孩间的一句“开黑?”而迅速团结起来。熟人社会的新纽带,家族内部的联系,借助互联网得以重构。

互联网+商业,实打实地提升了农村人的收入与幸福感。趁着淘宝开店风靡一时,有大胆的年轻人试着把家乡茶叶通过网络售卖,迅速赚进了第一桶金,客户越做越多,甚至购进了数台炒茶机,顺手提升了村庄的工业化水平。每逢春茶季便向家家户户收购青茶,炒茶室的灯光彻夜不熄。当然,明前茶的头好部分仍是手工炒制,即使高价也早几个月就被预订一空。这样的赚钱方式是村里人未曾设想的,不仅本村人,就连外出闯荡的年轻人,也有受到鼓舞回乡做电子商务的。就这样,村庄的活力又渐渐恢复,人们心目中新的乡贤也逐渐出现。

乡土社会因时代而衰败,应时代而新生。在这重构的乡土社会背景下,乡贤治理正在诠释“基层自治”的真义。在政府的推动下,修建了村文化礼堂与乡贤议事亭,凡村中大事咸决于乡贤。有家事纠纷,则必请权威者主持公道;有经营困惑,则会向商业眼光极好的年轻茶厂老板讨教。村民们也许不知道什么是“新乡贤文化”,但他们的行动就是对它最好的实践。

乡贤治理不仅仅是村民自决,更是乡贤对村庄未来规划的从长计议。借着“美丽乡村”的东风,村庄正在做准备开展旅游业。待二环建成,方便的地理位置将成为旅游业的极佳助力。虽然能否最终能否成功仍然有众多变数,村庄近年来的年年向好的变化令人兴奋,令人感受到乡贤治理的真正魔力。

总结

我始终相信,中国的根本在农村基层,而乡贤治理让我看到了乡土社会的巨大潜力。伴随着中国发展进入新时代,中国必将面临新的问题,而乡土社会将会继续以她无比宽容的、土地般的胸怀承接这一切,并给中华民族的未来带来新的希望与无限可能。

参考文献

  1. 沈寨, 2016. 从“权威治理”转向“规则治理”——对乡贤治理的思考[J]. 民间法, (1): 268–276.
  2. 費孝通, 2018. 鄉土中國[M]. 北京時代華文書局.
  3. 付翠莲, 2016. 我国乡村治理模式的变迁、困境与内生权威嵌入的新乡贤治理[J]. 地方治理研究, (1): 67–73.
  4. 李惊涛, 胡蓉, 2016. 乡村治理新思考:新乡贤的回归[J]. 人口·社会·法制研究, (Z2): 81–86.

【日记】获取权力:从私权到公权

这是公共行政学原理作业#4
瞎写居然能被助教推荐 bksw

【定 义】

权力是主体在特定情境下为达到目的而行使或意图行使手段,而由被行使客体被动或主动、有意识或无意识赋予的一种让渡资源的许可。


从霍布斯到马克思,再到福柯,人类对于权力的争辩一刻也不曾停止,人类对于权力的追求亦不曾停息(徐金河 2015)。本文试从权力的构成与来源角度进行分析,对获取权力的不同手段与途径进行归纳。

人类围绕权力的争夺持续了数千年甚至更久,却依然没有完全弄清楚权力本身,其复杂性可见一斑。因此,在研究如何获取权力之前,必须对权力进行定义。根据本文的定义,权力由三个必须要素组成:

  • 权力行使主体。权力必须由某人或某个团体行使或意图行使。
  • 权力行使客体。权力必须由某人或某个团体作为对象被行使。
  • 主体与客体间的某种一致,即主体认识到自己的权力而客体能够接受这种行使。例如,人具有食肉的权力而某些教派的和尚被认为不具有食肉的权力,这并非因为和尚不属于人,而是因为和尚放弃了自己食肉的权力,即主体的认识中自己并不拥有这种权力;又如,一个人不可能合理地声称其拥有撬动地球的权力,即使他是阿基米德,因为地球作为客体客观上无法接受这种权力行使。

在以上三个要素之外,有时也会引入其他的参与者,例如权力转让过程中本来的拥有者,或者主客体共属的共同体。

在明晰了权力基本组成的基础上,对权力的构建进行阐释。本文认为权力是由客体赋予主体的一种让渡资源的许可,这种许可不具有特定的形式,也不受主客体是否主观愿意并理解而影响。例如,人具有消灭某只蚂蚁的权力(暂且不论这种权力是否符合道德价值),在此过程中,蚂蚁(被动且毫无意识地)向人让渡了其生命的权力。另外,这种许可的存续取决于主体行使或意图行使的状态。当人不再愿意行使其消灭蚂蚁的权力,则人失去对蚂蚁生命的控制力,客体也就不再向主体进行生命的让渡。

基于上述对于权力的定义,本文在私权与公权两方面(刘军宁 1989)对权力的获取进行简要阐述。

私权的获取

私权,即主体为个人,以个人身份行使的各种权力,典型的包括自我保全所需的基本权力、契约规定的权力、宪法和法律或社会常识规定的各种权力。

本文将这些权力依据来源分成四类:

  • 自然存在的权力,即主体作为单独的存在而具有的与生俱来的权力(孙红日和Pratto 2017)。例如,人作为生物具有自我保存的权力,在此之上作为社会成员还有自主行动的权力,占有资源的权力。
    • 由客体赋予主体的权力,即客体主动或主体强迫客体赋予主体的权力。例如,各类合同,通过对金钱占有的权力交换对其他资源占有的权力,或者歹徒持刀抢劫时利用恐吓而占有受害者钱财的权力。
    • 由包含客体与主体的共同体赋予的权力,一般如国家、政党、公司、家庭等。例如,张三谋害李四,则法院、监狱等机构具有国家(张三和李四的共同体)赋予的依法处置权力。
    • 由其他权力者分予。例如,职业经理人的管理权力来自于雇佣为其工作的企业主。

针对自然存在的权力,一般通过觉醒新的主体认识来获取新的权力。此类权力的客体往往是主体自身或者主体所包含的共同体,因此获取权力依赖于主体的认识更新。例如,青年人在觉醒对于两性关系的自我认识后,便获得了恋爱的权力;民众在觉醒公民的自我认识后,便获得了参与政治的权力。在此之前,即使客观上他们可以这样做,但主观上没有这样的意图,因此便不具有相应的权力。

针对客体赋予主体的权力,可以通过增加己方谈判筹码、削弱对方谈判筹码、达成让步协议来获取更多权力。在主客体之间的权力让渡与交换,本质上是主客体间的一场谈判:价高者胜。以歹徒抢劫为例,歹徒的目的是最大化金钱收益而最小化被捕风险,受害者的目的是最小化威胁风险的同时最小化财产损失。歹徒方的筹码是对方的生命权力,而受害者方的筹码是让歹徒绳之以法的权力。从歹徒角度,增加己方筹码的典型方法包括:表现出凶狠、果断,让对方感受到更大的生命威胁;威胁其家人等。削弱对方筹码的方法包括:蒙面;恐吓以断绝对方逃脱与报警的希望。在这种情况下,如果谈判破裂,则是最坏的结果,因此往往会达成让步协议。即,受害者给出令抢劫者满意的部分财产,免去了生命威胁;而抢劫者免去了暴露的风险。

共同体赋予的权力一般以被动接受为主,较难通过个体的努力获取更多权力。一般而言,可以通过改变共同体的赋权机制,例如国家的立法、公司的规章等获取更多权力。例如,普京为了保持其政治权力与影响力,通过推动修改法律的方式取消了总统的任期等相关限制,为其获取更多权力打下制度基础。

针对其他权力者分予的权力,通过向权力者表现自己的能力以争取更多权力。例如,就业就是最典型的场景。通过更加丰富的经历与更加优异的能力,体现出就业者的价值,则能够得到具有更加多权力的岗位。

公权的获取

公权的主体是国家,而客体一般是其公民。根据卢梭的理论,国家的权力来自于公民的契约。本文将公权的来源分类如下:

  • 民众作为客体主动让渡,亦即国家本身自然存在的权力。公民出于保卫、发展等目的缔结为国家,赋予其平等地执行宪法(或其他国家权力规定)的权力。
  • 民众作为客体被动让渡,国家自我保存最低限度以外,利用强制力所要求的权力。例如,限制舆论的权力、使用公共资源维持政府权威的权力等。
  • 政客等实际权力执行者所需要,借用公权力实现的权力。

国家自然存在的权力决定于国家自身的形态与建立的目的,因此在这方面的权力变化往往涉及到政体或政府的更迭。例如,新中国政权的建立,伴随着轰轰烈烈的“公有化”浪潮。在社会主义改造过程中,国家对于私有财产的控制权力空前强化,正是因为国家的目的改变了。

针对国家基础权力以外的公权力,往往与国家的发展紧密相连。人民是非理性、短视的,通过国家强制力、未来承诺等方式,获取在基础权力以外的更大范围的公权。即使没有此类权力,也未必会对国家的存在根基发生动摇;但基于对人民生存权的尊重与国家未来发展的考量,此类额外的权力是必要的。例如,疫情期间许多国家采取强制措施进行封城,对人民的生活的掌控权力空前。

政客等假公济私的公权力,往往通过合理化的外表掩盖其不合理性。典型地,通过制度设计漏洞为自己谋取利益的腐败行为。获取此类权力,首先需要具有一定的政策影响力,其次能够获得足够大的利益集团支持,并能够将其合理化以免引起潜在反对意见的反弹。

权力的获取是复杂的,本文从宏观的针对不同类权力的分析入手,对具体案例进行简要剖析,介绍了不同类型权力的获取方法。

参考文献

  • 刘军宁. 1989. 《个人权力与公共权力的二重奏——霍布斯权力理论探幽》. 中国青年政治学院学报 (1):19–23.
  • 孙红日, 和Felicia Pratto. 2017. 《权力基础理论:对应生存需要的权力-维普期刊 中文期刊服务平台》. 心理科学进展 2017(11):1982–91.
  • 徐金河. 2015. 《马克思与福柯的权力思想比较-维普期刊 中文期刊服务平台》. 《学理论》 2015(11):20–21.