If you can't telnet then there is something wrong with your networking. Either your virtual network connection between hosts is the problem or there is a firewall blocking connections.
If you are just getting started then I'd keep things really simple first of all and:
- Use standard geth nodes
- Run your nodes on one virtual machine on different ports
e.g. initialise your geth nodes like this:
ethuser@host01:~$ mkdir test1
ethuser@host01:~$ cd test1
ethuser@host01:~/test1$ mkdir nodeA
ethuser@host01:~/test1$ mkdir nodeB
ethuser@host01:~/test1$ <use your favourite editor to create a genesis.json file in this directory>
ethuser@host01:~/test1$ geth --datadir nodeA init genesis.json
WARN [08-04|10:41:41] No etherbase set and no accounts found as default
INFO [08-04|10:41:41] Allocated cache and file handles database=/home/ethuser/test1/nodeA/geth/chaindata cache=16 handles=16
INFO [08-04|10:41:41] Writing custom genesis block
INFO [08-04|10:41:41] Successfully wrote genesis state database=chaindata hash=dd3f8d…707d0d
INFO [08-04|10:41:41] Allocated cache and file handles database=/home/ethuser/test1/nodeA/geth/lightchaindata cache=16 handles=16
INFO [08-04|10:41:41] Writing custom genesis block
INFO [08-04|10:41:41] Successfully wrote genesis state database=lightchaindata hash=dd3f8d…707d0d
ethuser@host01:~/test1$ geth --datadir nodeB init genesis.json
WARN [08-04|10:41:52] No etherbase set and no accounts found as default
INFO [08-04|10:41:52] Allocated cache and file handles database=/home/ethuser/test1/nodeB/geth/chaindata cache=16 handles=16
INFO [08-04|10:41:52] Writing custom genesis block
INFO [08-04|10:41:52] Successfully wrote genesis state database=chaindata hash=dd3f8d…707d0d
INFO [08-04|10:41:52] Allocated cache and file handles database=/home/ethuser/test1/nodeB/geth/lightchaindata cache=16 handles=16
INFO [08-04|10:41:52] Writing custom genesis block
INFO [08-04|10:41:52] Successfully wrote genesis state database=lightchaindata hash=dd3f8d…707d0d
ethuser@host01:~/test1$
Then launch your first geth node like this
ethuser@host01:~/test1$ geth --datadir nodeA --networkid 1234567 console
WARN [08-04|10:42:22] No etherbase set and no accounts found as default
INFO [08-04|10:42:22] Starting peer-to-peer node instance=Geth/v1.6.7-stable-ab5646c5/linux-amd64/go1.8.1
INFO [08-04|10:42:22] Allocated cache and file handles database=/home/ethuser/test1/nodeA/geth/chaindata cache=128 handles=1024
WARN [08-04|10:42:22] Upgrading chain database to use sequential keys
INFO [08-04|10:42:22] Initialised chain configuration config="{ChainID: 1907 Homestead: 0 DAO: <nil> DAOSupport: false EIP150: <nil> EIP155: 0 EIP158: 0 Metropolis: <nil> Engine: unknown}"
INFO [08-04|10:42:22] Disk storage enabled for ethash caches dir=/home/ethuser/test1/nodeA/geth/ethash count=3
INFO [08-04|10:42:22] Disk storage enabled for ethash DAGs dir=/home/ethuser/.ethash count=2
WARN [08-04|10:42:22] Upgrading db log bloom bins
INFO [08-04|10:42:22] Bloom-bin upgrade completed elapsed=252.683µs
INFO [08-04|10:42:22] Initialising Ethereum protocol versions="[63 62]" network=1234567
INFO [08-04|10:42:22] Database conversion successful
INFO [08-04|10:42:22] Loaded most recent local header number=0 hash=dd3f8d…707d0d td=40
INFO [08-04|10:42:22] Loaded most recent local full block number=0 hash=dd3f8d…707d0d td=40
INFO [08-04|10:42:22] Loaded most recent local fast block number=0 hash=dd3f8d…707d0d td=40
INFO [08-04|10:42:22] Starting P2P networking
INFO [08-04|10:42:22] UDP listener up self=enode://9ce583f7e1905b23217cd2a92894291c6d8f5ce7a29e85fdeaf48b3ab065c6d5b6cce4f064fdaf26f41d2354bf0a203438563f6ffdba73cec3b8692f6f850817@[::]:30303
INFO [08-04|10:42:22] RLPx listener up self=enode://9ce583f7e1905b23217cd2a92894291c6d8f5ce7a29e85fdeaf48b3ab065c6d5b6cce4f064fdaf26f41d2354bf0a203438563f6ffdba73cec3b8692f6f850817@[::]:30303
INFO [08-04|10:42:22] IPC endpoint opened: /home/ethuser/test1/nodeA/geth.ipc
Welcome to the Geth JavaScript console!
instance: Geth/v1.6.7-stable-ab5646c5/linux-amd64/go1.8.1
modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0
>
And then start up your second node. In my case I needed to use ethuser@host01:~/test1$ geth --datadir nodeB --port 30304 --networkid 1234567 --bootnodes enode://9ce583f7e1905b23217cd2a92894291c6d8f5ce7a29e85fdeaf48b3ab065c6d5b6cce4f064fdaf26f41d2354bf0a203438563f6ffdba73cec3b8692f6f850817@127.0.0.1:30303
Wait a few moments to give the nodes a chance to connect and then double check in your console that admin.peers
returns some more info, e.g.
> admin.peers
[{
caps: ["eth/63"],
id: "9ce583f7e1905b23217cd2a92894291c6d8f5ce7a29e85fdeaf48b3ab065c6d5b6cce4f064fdaf26f41d2354bf0a203438563f6ffdba73cec3b8692f6f850817",
name: "Geth/v1.6.7-stable-ab5646c5/linux-amd64/go1.8.1",
network: {
localAddress: "127.0.0.1:41900",
remoteAddress: "127.0.0.1:30303"
},
protocols: {
eth: {
difficulty: 40,
head: "0xdd3f8d61f38ebc195a6c9b0e5888e7e035f31ecd92e4427fb01176b984707d0d",
version: 63
}
}
}]
>
I've left out creating accounts etc as you don't specifically ask it but if you're interested here are some more of my own newbie experiences: https://alanbuxton.wordpress.com/2017/07/19/first-steps-with-ethereum-private-networks-and-smart-contracts-on-ubuntu-16-04/